我已经添加了UIView SubclassUITextField。我已将此视图设置为Viewcontroller的顶视图。
UIViewSubclass中,我重写了inputViewController getter以提供自定义键盘。

当我选择UITextField时,我假设becomeFirstResponderUITextField被调用了,我会看到与其相关的键盘。
但是,除此之外,我的inputViewController上的UIView Subclass方法也被调用,导致文本字段和UIView的输入视图都显示在另一个之上。我也看不到canBecomeFirstResponder调用becomeFirstResponderUIView'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/

10-08 21:56