Пользовательская клавиатура: получать уведомления при обновлении текста
Есть ли метод в 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)
,