【问题标题】:Cannot assign to property: ‘inputAccessoryView’ is a get-only property无法分配给属性:“inputAccessoryView”是一个只能获取的属性
【发布时间】:2017-02-28 07:46:33
【问题描述】:

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

有没有更好的方法来做到这一点?关于如何让它发挥作用的任何想法?

【问题讨论】:

    标签: ios swift uiwebview inputaccessoryview


    【解决方案1】:

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

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

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

    iOS 7 UIWebView keyboard issue

    【讨论】:

      猜你喜欢
      • 2017-10-21
      • 1970-01-01
      • 1970-01-01
      • 2022-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多