iOS快速代理在uiview中有超过1个uitextfield

FRE*_*405 4 ios uitextfielddelegate swift

我有一个iOS应用程序,有一个UIView和三个UITextField(超过1个)我想了解我的类ViewController管理的最佳实践 UITextField.

- 类MainViewController:UIViewController,UITextFieldDelegate

我不知道,因为我有一个以上UITextField,只有一个func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool

ana*_*y_v 13

最简单的方法是知道在委托方法中使用哪个文本字段.即你有3个文本字段:field1,field2,field3,当调用委托时,你可以检测到该做什么:

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
    if textField == field1 {
        // do something
    } else if textField == field2 {
        // do something
    } else if textField == field3 {
        // do something
    }
  return true
}
Run Code Online (Sandbox Code Playgroud)

不要忘记将所有领域的代表作为自己:field1.delegate = self等等.

在你的情况下它会工作正常.

如果你想知道一个更好的解决方案,如果你有更多的字段(10,20?)让我知道,我会更新我的答案.

  • 10 个或 20 个字段该怎么办?您能否更新您的答案。 (2认同)