未调用UITextFieldDelegate方法

我正在遵循Big Nerd Ranch iOS编程书(Swift版本),我有这个文件。

import UIKit class ConversionViewController: UIViewController, UITextFieldDelegate { @IBOutlet var celsiusLabel: UILabel! @IBOutlet var textField: UITextField! func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { print("here") return true } //rest of the code here } 

出于某种原因,不调用textField委托方法。 我无法在控制台中看到“这里”日志。 我已经多次检查命名和语法。 有任何想法吗?

你需要设置你的文本字段的代表自己。

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

这条线是否存在?

 textField.delegate = self 

在第一个括号之后,我在函数中忽略了_

不起作用

 func textFieldDidBeginEditing(textField: UITextField) { } 

这工作

 func textFieldDidBeginEditing(_textField: UITextField) { }