B R*_*son 5 ios inputaccessoryview swift ios9 ios10
我正在尝试实现一个浮动在键盘上的 textView (如 iMessage 应用程序),我想使用它,inputAccessoryViewController以便我可以拥有视图控制器,而不仅仅是通过覆盖inputAccessoryView. 我编写了下面的代码,但在 iOS 9 中存在问题,当您点击时,textView 会消失,而键盘上的 textView 会弹出。它在 iOS 10 中运行良好。
class ViewController: UIViewController {
    var textEntryController = TextEntryController.fromNIB()
    override var inputAccessoryViewController: UIInputViewController? {
            return self.textEntryController
    }
    override var canBecomeFirstResponder: Bool {
        return true 
    }
}
我试图找出出了什么问题,所以我重写了这两个方法inputAccessoryViewController,并inputAccessoryView在每个方法中设置了断点。
    override var inputAccessoryViewController: UIInputViewController? {
        return self.textEntryController //break point
    }
    override var inputAccessoryView: UIView? {
        return self.textEntryController.view //break point
    }
这解决了 iOS 9 上 textview 消失的问题,但我认为这是不对的。这可能会破坏视图控制器层次结构。
观察:在 iOS 9 和 iOS 10 上,当我启动应用程序时,这两种方法都会被调用。在 iOS 9 上,只有inputAccessoryView当我点击文本字段时,才会调用这两种方法。在 iOS 10 上,当我点击文本视图时,inputAccessoryView和都会被调用。inputAccessoryViewController
覆盖的正确方法是什么inputAccessoryViewController?我认为我不应该同时重写inputAccessoryView和inputAccessoryViewController。
我面临着类似的问题,在我的例子中,inputAccessoryViewController和canBecomeFirstResponderoverride 方法没有被调用。这是因为ViewController不是 的子类UIViewController。
| 归档时间: | 
 | 
| 查看次数: | 707 次 | 
| 最近记录: |