2

我必须UIView Subclass在其中添加一个UITextField. 我已将此视图设置为我的 Viewcontroller 的顶视图。在 中UIViewSubclass,我重写inputViewController了 getter 以提供自定义键盘。

当我选择 时UITextField,我会假设becomeFirstResponderofUITextField被调用并且我会看到与之关联的键盘。然而,除此之外,inputViewController我的方法UIView Subclass也被调用,导致文本字段和 UIView 的输入视图都显示在另一个之上。canBecomeFirstResponder我也看不到becomeFirstResponder我的UIView's subclass. 仅inputViewController调用方法并显示自定义键盘。

任何人都可以帮助我理解为什么即使它没有成为第一响应者也会inputViewController被召唤。UIView's subclass

来自苹果文档的更新 -“输入视图替代了分配给文本视图或自定义视图的 inputView 属性的系统键盘。当有输入视图时,即使文本对象是第一个,UIKit 也可能换出键盘响应者,它可能会代表开发人员为非文本对象显示类似键盘的输入视图。”

因此,如果我理解正确,UIResponder 在我的 UIView 子类上调用 inputViewController 确实有意义,但理想情况下它应该用 inputViewController 替换文本字段键盘?显然,这并没有发生在这里。

4

1 回答 1

0

您是否使用 UIView 子类专门覆盖 inputViewController?您可以尝试不这样做,而是将 UITextField 子类化,然后在您的 UITextField 子类中覆盖 inputViewController。

于 2017-01-13T02:56:51.040 回答