【发布时间】:2018-07-13 08:09:42
【问题描述】:
我有一个非常典型的类似聊天的屏幕,其中包含一个文本字段的 InputAccessoryView。最初加载屏幕时,键盘是隐藏的,因此文本字段位于屏幕底部。当用户点击文本字段时,键盘会显示并且 InputAccessoryView 会随着键盘向上移动。
此处显示了一个示例:
但是,如果我将相同的 UIViewController 放在 UIPageViewController 中,则默认情况下不会出现 InputAccessoryView。只有在通过点击不同的文本框强制出现键盘时才会出现。
此处示例:
另外,如果切换页面,InputAccessoryView 会再次消失。
设置 InputAccessoryView 的代码如下所示:
class ViewController: UIViewController {
var chatInputView: ChatInputView?
override var canBecomeFirstResponder: Bool {
return true
}
override var inputAccessoryView: UIView? {
return self.chatInputView
}
override func viewDidLoad() {
super.viewDidLoad()
let chatInputView = ChatInputView(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: 124))
chatInputView.awakeFromNib()
self.chatInputView = chatInputView
}
InputAccessoryView 是通过 XIB 文件创建的,但非常标准。
所有代码都可以在https://github.com/SuperTango/InputAccessoryView找到
有两个提交。第一次提交被标记为“not_working”,并通过将默认 ViewController 设置为 UIPageViewController 子类来显示不工作的版本。第二次提交标记为“工作”,只是将默认 ViewController 设置为图像中的 ViewController,
在将 UIViewController 放入 UIPageViewController 时,有什么方法可以让 InputAccessoryView 默认显示?
谢谢!
【问题讨论】:
-
你发现了吗?
标签: ios swift uipageviewcontroller inputaccessoryview