我已添加UIView Subclass
UITextField
。我已将此视图设置为Viewcontroller的顶视图。
在UIViewSubclass
中,我重写了inputViewController
getter以提供自定义键盘。
当我选择UITextField
时,我会假设becomeFirstResponder
的{{1}}被调用,我会看到与之关联的键盘。
但是,除此之外,我的UITextField
上的inputViewController
方法也会被调用,导致文本字段和UIView的输入视图逐个显示在另一个上面。我也没有在UIView Subclass
上看到canBecomeFirstResponder
或becomeFirstResponder
被调用。仅调用UIView's subclass
方法并显示自定义键盘。
任何人都可以帮助我理解为什么inputViewController
会在inputViewController
被调用,即使它没有成为第一响应者。
更新 来自苹果文档 - &#34;输入视图可替代分配给文本视图或自定义视图的inputView属性的系统键盘。当有输入视图时,即使文本对象是第一响应者,UIKit也可能更换键盘,并且可能代表非开发人员对象显示类似键盘的输入视图。&#34; < / p>
因此,如果我理解正确,UIResponder在我的UIView子类上调用inputViewController确实有意义,但理想情况下它应该用inputViewController换出textfields键盘?显然,这不会发生。
答案 0 :(得分:0)
您是否专门使用UIView子类来覆盖inputViewController?您可以尝试不这样做,而是继承UITextField,然后在UITextField子类中覆盖inputViewController。