如果正在编辑一个文本框,如何暂时禁止所有文本框的用户交互?

时间:2019-04-29 18:06:12

标签: ios swift input

是否有一种方法可以暂时禁用ViewController上所有文本字段的交互和输入(如果当前正在对其进行编辑)。在键盘或UIPicker消失后,我希望再次启用textField交互。

我知道我可以禁用触摸互动:

textField.isUserInteractionEnabled = false

但是如果我同时拥有textField2textField3怎么办,我在编辑textfield1时如何暂时禁用两个textField的用户交互?

1 个答案:

答案 0 :(得分:1)

为所有文本字段创建出口集合

@IBOutlet var textFs:[UITextField]! 

然后在viewDidLoad

中将vc设置为它们的委托。
textFs.forEach { $0.delegate = self }

实施

func textFieldDidBeginEditing(_ textField: UITextField) { 
   textFs.forEach {
     if $0 != textField {
       $0.isUserInteractionEnabled = false
    }
  }
}

func textFieldDidEndEditing(_ textField: UITextField) {
   textFs.forEach {  $0.isUserInteractionEnabled = true }
}