Пользовательская клавиатура: получать уведомления при обновлении текста

Есть ли метод в UIInputViewController когда текст, который изменяет пользовательская клавиатура, обновляется? textWillChange/textDidChange только уведомить меня о движении курсора.

2 ответа

Есть UITextFieldTextDidBeginEditingNotification, UITextFieldTextDidEndEditingNotification, UITextFieldTextDidChangeNotification Вы можете использовать

   NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.textFieldDidChanged(_:)),    name: UITextFieldTextDidEndEditingNotification, object:self.txtAlbumName)

   NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.textFieldDidChanged(_:)),    name: UITextFieldTextDidChangeNotification, object:self.txtAlbumName)
  // ------------

  func textFieldDidChanged(sender:NSNotification) -> Void {

  }

  func textFieldDidChanged (sender:NSNotification) -> Void{

  }
}

Подкласс UIInputView, В вашем подклассе установите protocol,

protocol MyCustomInputViewDidChangeDelegate {
    func customInputViewDidChange(customInputView: MyCustomInputView)
}

class MyCustomInputView: UIInputView {
    var delegate: MyCustomInputViewDidChangeDelegate?
}

Вы будете иметь UIInputViewController соответствовать MyCustomInputViewDidChangeDelegate При прикосновении к пользовательской клавиатуре передайте это делегату, когда это необходимо, delegate?.customInputViewDidChange(self),

Другие вопросы по тегам