【发布时间】:2016-09-23 11:54:25
【问题描述】:
我想我可能在做一些愚蠢的事情,但我还是要问这个问题。 我看不到 UITextFieldDelegate 方法 textField 被调用。我创建了一个带有打印语句的简单程序,显示所有其他委托方法都可以正常调用,但不是这个。这是程序代码:
import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
//MARK: Properties
@IBOutlet weak var testTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
testTextField.delegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//MARK: UITextFieldDelegate
func textFieldShouldReturn(textField: UITextField) -> Bool {
print("textFieldShouldReturn")
textField.resignFirstResponder()
return true
}
func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
print("textFieldShouldBeginEditing")
return true
}
func textFieldDidBeginEditing(textField: UITextField) {
print("textFieldDidBeginEditing")
print("Leaving textFieldDidBeginEditing")
}
func textField(textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
print("textField")
print("Leaving textField")
return true
}
func textFieldDidEndEditing(textField: UITextField) {
print("textFieldDidEndEditing")
print("textField = \(textField.text)")
print("Leaving textFieldDidEndEditing")
}
}
就是这样。我在 Interface Builder 中添加了一个带有 UITextField 的 ViewController。输入文本显示正在调用其他委托方法。我正在使用 Xcode 7.3.1。 如果这是一个愚蠢的问题,任何帮助都非常感谢和道歉 - 我希望它是。
【问题讨论】:
-
你把 UITextField 和 IBOutlet 连接起来了吗?
-
是的。我在IB中建立了联系。我看到所有其他委托函数都被调用 - 我想如果我没有建立连接,我就不会看到那些?
-
尝试将 textField 出口标记为强而不是弱(只需删除弱关键字),引用可能会被破坏,因此永远不会调用委托。远射,但值得一试。
-
刚才试过了。恐怕没有变化。但我很感激现在的任何远射......