如何初始化 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,您需要将文本字段的委托分配给您自己,您需要设置它们的标签然后你可以在协议方法中区分它们。
我想要一个变量来告诉我刚刚编辑了哪个文本域。因此,变量需要具有 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,您需要将文本字段的委托分配给您自己,您需要设置它们的标签然后你可以在协议方法中区分它们。