如何初始化 UITextField 变量?

How can I initialize a UITextField Variable?

我想要一个变量来告诉我刚刚编辑了哪个文本域。因此,变量需要具有 UITextField 类型。但是我该如何初始化它呢?

var whichTextFieldWasEditited = UITextField

init() { }

所有 UITextField 都有您可以遵守的协议。 https://developer.apple.com/documentation/uikit/uitextfielddelegate

该协议有 6 种不同的方法,您正在寻找的方法是 textFieldDidEndEditing

区分 UITextField 的最简单方法是为它们分配标签。所有 UIView(和子classes)都有一个标签,这样它们就可以被识别。

为了能够利用此协议方法,您需要将 UITextField 的委托设置为 "self",在您的情况下将是视图控制器,并设置 UITextFields 的标签

将它们整合在一起

class MyViewController: UIViewController, UITextFieldDelegate {

     let textField1 = UITextField() //() is the constructor for the object
     let textField2 = UITextField() 

     init(){ //some generic init
        super.init()
        textField1.delegate = self
        textField1.tag = 1
        textField2.delegate = self
        textField2.tag = 2
     }

     //protocol method
     func textFieldDidEndEditing(_ sender: UITextField){
         //since the sender is of UITextField 
         if sender.tag == 1 { //it's textField1
             //do something
         }
         if sender.tag == 2 { //it's textField2
             //do something
         }
      }
 }

注意:这只是一个骨架示例,重要的是您的 class 需要符合 UITextFieldDelegate,您需要将文本字段的委托分配给您自己,您需要设置它们的标签然后你可以在协议方法中区分它们。