2016-10-18 4 views
3

В моем быстром приложении я пытаюсь скрыть inputAccessoryView, который показывает, когда пользователь удаляет текстовое поле внутри webview.Невозможно присвоить свойству: 'inputAccessoryView' - свойство get-only

Вот код пытается сделать это:

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

Я думаю, что ошибка связана с тем, как объявляется клавиатура.

Когда я создаю свой собственный UIView и назначаю его как inputView для первого ответчика, я могу затем назначить (или установить нуль) входной регистр первого ответчикаAccessoryView.

Я предполагаю, что вы пытаетесь удалить существующий вид аксессуаров, поскольку Apple говорит, что значение по умолчанию равно nil. Я нашел это решение для iOS 7, возможно, это все еще работает? Кто-то подклассифицировал UIWebDocumentView, а затем ввел реализацию inputAccessoryView, который возвращает nil. Это в Obj-C, но это выглядит многообещающе:

iOS 7 UIWebView keyboard issue

Смежные вопросы