我遇到了一些事我无法理解。
在我看过的教程中,教师按(cntrl + click)委托选项并将其拖到ViewController类中。然后,文本字段选项变得像照片。我搜索了很多,我找到了解释,但我无法理解它。
说明:为了能够使用UITextFieldDelegate方法,ViewController类必须采用此协议。但是,在使用任何方法之前,我们必须选择此委托选项。
我无法理解这个选项。它有什么好处?
答案 0 :(得分:1)
所以为了使用它并理解它,请尝试以下步骤:
1对你的类采用UITextFieldDelegate协议,如此
class MyViewController: UIViewController, UITextViewDelegate {
2为UITextViewDelegate实现回调方法。例如:
//MARK: UITextViewDelegate
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
print(textField.text ?? "")
return true
}
这些方法用于管理和验证TextView中的文本。 也许您应该阅读protocols。
或者如果你不明白为什么你直接设置你的委托形式故事板,那是因为这样你就不会在你的班级中宣布一个额外的属性。我将无缝完成,你不会在课堂上有这个:
@IBOutlet weak var myTextField: UITextField!
//...
override func viewDidLoad() {
super.viewDidLoad()
myTextField.delegate = self
}
答案 1 :(得分:0)
首先将代理添加到视图控制器中 UITextFieldDelegate
只有这样才能在视图控制器中使用委托函数。
为了使功能按预期工作, 您必须将文本字段的委托设置为self。例如 textfield.delegate = self
将textfield的委托设置为self是教师执行相同操作的编程方式(正如您所说)。