无法分配给属性:'inputAccessoryView'是一个get-only属性

Leg*_*ut 5 uiwebview ios inputaccessoryview swift

在我的swift应用程序中,我试图隐藏inputAccessoryView,该视图显示用户点击webview中的文本字段.

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

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

但是我收到了这个错误:

Cannot assign to property: ‘inputAccessoryView’ is a get-only property
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?有关如何使其工作的任何想法?

小智 1

我认为该错误是由于键盘视图的声明方式造成的。

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

我假设您正在尝试删除现有的附件视图,正如 Apple 所说的默认值为零。我找到了 iOS 7 的解决方法,也许这仍然有效?有人对 UIWebDocumentView 进行子类化,然后放入返回 nil 的 inputAccessoryView 实现。它在 Obj-C 中,但看起来很有前途:

iOS 7 UIWebView 键盘问题