How to get all the textfields from a view in swift

前端 未结 8 869
予麋鹿
予麋鹿 2020-12-17 17:53

I have a view which has more than 15 UITextFields. I have to set bottomBorder(extension) for all the UITextFields. I can set it one by one for all

8条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-17 18:26

    Swift: This function will return all text-fields in a view. No matter if field exists in any subview. ;-)

    func getAllTextFields(fromView view: UIView)-> [UITextField] {
        return view.subviews.flatMap { (view) -> [UITextField]? in
            if view is UITextField {
                return [(view as! UITextField)]
            } else {
                return getAllTextFields(fromView: view)
            }
        }.flatMap({$0})
    }
    

    Usage:

    _=getAllTextFields(fromView : self.view).map{($0.text = "Hey dude!")}
    

提交回复
热议问题