TextField的代表

时间:2017-08-18 12:18:07

标签: ios swift

我遇到了一些事我无法理解。

enter image description here

在我看过的教程中,教师按(cntrl + click)委托选项并将其拖到ViewController类中。然后,文本字段选项变得像照片。我搜索了很多,我找到了解释,但我无法理解它。

说明:为了能够使用UITextFieldDelegate方法,ViewController类必须采用此协议。但是,在使用任何方法之前,我们必须选择此委托选项。

我无法理解这个选项。它有什么好处?

2 个答案:

答案 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
    }

enter image description here

这些方法用于管理和验证TextView中的文本。 也许您应该阅读protocols

或者如果你不明白为什么你直接设置你的委托形式故事板,那是因为这样你就不会在你的班级中宣布一个额外的属性。我将无缝完成,你不会在课堂上有这个:

    @IBOutlet weak var myTextField: UITextField!

    //...
    override func viewDidLoad() {
        super.viewDidLoad()
        myTextField.delegate = self
    } 

答案 1 :(得分:0)

首先将代理添加到视图控制器中 UITextFieldDelegate

只有这样才能在视图控制器中使用委托函数。

为了使功能按预期工作, 您必须将文本字段的委托设置为self。例如 textfield.delegate = self

将textfield的委托设置为self是教师执行相同操作的编程方式(正如您所说)。