我正在尝试实现一个漂浮在键盘上的textView(比如iMessage应用程序)我想使用.main{
min-height: 100vh;
}
以便我可以拥有视图控制器,而不仅仅是覆盖{{1}的视图}。我已经编写了下面的代码,但它在iOS 9中有一个问题,当你点击时,textView会消失,键盘上的textView会弹出。它在iOS 10中运行良好。
inputAccessoryViewController
我试图弄清楚出了什么问题所以我确实覆盖了inputAccessoryView
和class ViewController: UIViewController {
var textEntryController = TextEntryController.fromNIB()
override var inputAccessoryViewController: UIInputViewController? {
return self.textEntryController
}
override var canBecomeFirstResponder: Bool {
return true
}
}
,并在每种方法中加入了断点。
inputAccessoryViewController
这解决了textview在iOS 9上消失的问题,但我不认为这是对的。这可能会破坏视图控制器层次结构。
观察:
在iOS 9和iOS 10上,当我启动应用程序时,都会调用这两种方法
仅在iOS 9上,当我点击文本字段时,inputAccessoryView
被调用。
在iOS 10上,当我点击文本视图时, override var inputAccessoryViewController: UIInputViewController? {
return self.textEntryController //break point
}
override var inputAccessoryView: UIView? {
return self.textEntryController.view //break point
}
和inputAccessoryView
会被调用。
覆盖inputAccessoryView
的正确方法是什么?我认为我不应该同时覆盖inputAccessoryViewController
和inputAccessoryViewController
。
答案 0 :(得分:0)
我遇到了类似的问题,在我的案例中,未调用inputAccessoryViewController
和canBecomeFirstResponder
覆盖方法。这是因为ViewController
不是UIViewController
的子类。