【发布时间】:2019-10-01 10:11:15
【问题描述】:
我有一个UIAlertController 和一个textField。由于我无法为textField 创建插座,我必须找到另一种方法来获取实时观察用户输入的功能。
我做了一些尝试,但没有成功。该线程解释了如何将目标添加到文本字段:
How do I check when a UITextField changes?
textfield.addTarget(self, action: #selector(ViewControllerr.textFieldDidChange(_:)), for: UIControl.Event.editingChanged)
我试过这个,但不太明白#selector 输入。它想要我的UIViewController? 还是我的UIAlertController 我都试过了,但得到了同样的错误信息:
Value of type 'UIViewController' has no member 'textFieldDidChange'
与UIAlertController 相同。
我还尝试将我的textField 设置为委托访问该类的功能:
textField.delegate = self as? UITextFieldDelegate
但我想这不是正确的方法,因为我仍然无法访问任何功能,除非这样做:
textField.delegate?.textFieldDidBeginEditing?(textField)
但这也没有给我任何东西。
我也尝试添加这样的扩展:
extension UITextFieldDelegate {
func textFieldDidBeginEditing(_ textField: UITextField) {
print("????EDITING")
}// became first responder
func textFieldDidEndEditing(_ textField: UITextField) {
print("????EDITING")
}
}
但由于某种原因,我无法通过textView 访问它们
如果我像这样扩展类:
extension PickNumberViewController: UITextFieldDelegate {...}
我收到同样的错误信息
Value of type 'UITextField' has no member 'textFieldDel...'
这没有任何意义,因为我将 textField 设置为 UITextFieldDelegate 而不是 UITextField。
如果您也想查看我的代码,请告诉我。
【问题讨论】:
标签: swift xcode uitextfield uialertcontroller