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

时间:2016-10-18 21:25:54

标签: ios swift uiwebview inputaccessoryview

在我的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           
        } 
    }

但是我收到了这个错误:

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

有更好的方法吗?关于如何使其发挥作用的任何想法?

1 个答案:

答案 0 :(得分:1)

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

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

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

<强> iOS 7 UIWebView keyboard issue