6

UIKit 文本输入组件,例如UITextViewUITextField具有inputView添加自定义键盘的属性。我有两个与此相关的问题。

  1. 如果键盘当前可见并且属性设置为新的输入视图,则不会发生任何事情。辞职和重新获得第一响应者状态会刷新输入并显示新视图。这是最好的方法吗?如果是这样,它可能会回答我更大的问题:

  2. 是否可以为两个输入视图之间的过渡设置动画?

4

2 回答 2

1

来自 UIResponder 文档:

需要自定义视图以从用户那里收集输入的响应程序对象应将此属性重新声明为读写并使用它来管理其自定义输入视图。当接收者随后成为第一响应者时,响应者基础结构会自动呈现指定的输入视图。同样,当视图放弃其第一响应者状态时,响应者基础结构会自动关闭指定的视图。

所以不幸的是,1 的答案是肯定的,而 2 的答案是否定的。

于 2013-02-28T09:55:01.833 回答
0
  1. Actually there is a method to do it cleanly: UIResponder's reloadInputViews, available from iOS 3.2!

  2. I think you can animated it with some extra work:

    • Create a clear background window of a higher UIWindowLevel than the keyboard window.
    • Add your custom keyboard there and animate its frame into place.
    • Then set it as your text input's inputView and refresh the first responder as you do.

Your custom keyboard will change its parent view from your custom window to the keyboard one, but hopefully the user won't notice ;)

于 2014-02-28T01:29:52.117 回答