[英]UITextField inputView - IBActions not fired
我想用自定义键盘替换UITextField
的默认键盘。 因此,我创建了带有xib文件的UIViewController
的新子类(另一种方法是分别创建两个文件和设置文件的所有者也不起作用)。
然后,我向KeyboardView添加了一个按钮,并将其连接到IBAction
。 之后,将文本字段inputView设置为新视图,如下所示:
override func viewDidLoad() {
let keyboardVC = KeyboardViewController()
textField.inputView = keyboardVC.view
keyboardVC.view.autoresizingMask = .FlexibleHeight
keyboardVC.delegate = textField
}
它可以正常工作,并且显示自定义键盘,但是如果我触摸该按钮,则不会调用IBAction。 我的设置有什么问题? (我检查了一些示例,它们都以相同的方式进行操作)。
更新:
现在,我删除了ViewController并将其子类化为UIView。 现在这些动作正在起作用。 为什么它不能与ViewController一起使用?
由于没有人持有UIViewController
在viewDidLoad()
结束后没有对它的引用,因此将其从内存中释放。 当按下按钮时,不应该响应该操作的视图控制器不存在->您仅将视图控制器的视图作为textField.inputView
持有。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.