我已经添加了UIView Subclass
到UITextField
。我已将此视图设置为Viewcontroller的顶视图。
在UIViewSubclass
中,我重写了inputViewController
getter以提供自定义键盘。
当我选择UITextField
时,我假设becomeFirstResponder
的UITextField
被调用了,我会看到与其相关的键盘。
但是,除此之外,我的inputViewController
上的UIView Subclass
方法也被调用,导致文本字段和UIView的输入视图都显示在另一个之上。我也看不到canBecomeFirstResponder
调用becomeFirstResponder
或UIView's subclass
。仅调用inputViewController
方法,并且显示自定义键盘。
谁能帮助我了解为什么inputViewController
即使未成为第一响应者也被调用在我的UIView's subclass
上。
更新
从Apple文档-
“输入视图是分配给文本视图或自定义视图的inputView属性的系统键盘的替代。当存在输入视图时,即使文本对象是第一响应者,UIKit也会换出键盘,并且显示开发人员代表非文本对象的类似键盘的输入视图。”
因此,如果我正确理解了这一点,那么UIResponder确实有必要在我的UIView子类上调用inputViewController,但是理想情况下,它应该已经将textfields键盘换成了inputViewController吗?显然,这没有发生。
最佳答案
您是否正在使用专门用于重写inputViewController的UIView子类?您可以尝试不这样做,而是改用UITextField的子类,然后在UITextField子类中重写inputViewController。
关于ios - 当点击 subview (UITextView)时,将调用 super View 的inputViewController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41604001/