5

在我的 swift 应用程序中,我试图隐藏当用户点击 web 视图内的文本字段时显示的 inputAccessoryView。

这是尝试执行此操作的代码:

  func keyboardWillShow(notification: NSNotification) {      
        if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() {        
            var keyboardView = UIApplication.sharedApplication().windows.last!.subviews.first!
            keyboardView.inputAccessoryView = nil           
        } 
    }

但我收到此错误:

Cannot assign to property: ‘inputAccessoryView’ is a get-only property

有一个更好的方法吗?关于如何让它发挥作用的任何想法?

4

1 回答 1

1

我认为错误是由于keyboardView 的声明方式造成的。

当我创建自己的 UIView 并将其分配为第一响应者的 inputView 时,我可以分配(或设置为 nil)第一响应者的 inputAccessoryView。

我假设您正在尝试删除现有的附件视图,因为 Apple 表示默认值为 nil。我找到了适用于 iOS 7 的解决方法,也许这仍然有效?有人将 UIWebDocumentView 子类化,然后放入返回 nil 的 inputAccessoryView 实现。它在 Obj-C 中,但看起来很有希望:

iOS 7 UIWebView 键盘问题

于 2016-10-19T00:34:50.470 回答