Я создал собственное представление ввода для ввода текста в UITextField
. По сути, это просто специально разработанная цифровая клавиатура. У меня есть текстовые поля, для которых я установил свойство inputView для использования моего созданного пользователем подкласса UIView
. В этом представлении у меня есть набор кнопок - от 0 до 9, а также Backspace.
Теперь я хочу программно изменить текст UITextField при нажатии этих кнопок. UITextField
принимает UITextInput
протокол, который, в свою очередь, принимает UIKeyInput
. В этом протоколе у меня есть все необходимые мне методы, то есть вставка текста в позицию курсора и удаление текста.
Проблема в том, что эти методы не запускают UITextField
методов делегата. То есть, например, если у меня есть пользовательская проверка в поле textField:shouldChangeCharactersInRange:replacementString:
, это не сработает. Я пытался установить свойство text UITextField
напрямую, но это тоже не сработало.
Каков правильный способ вставки текста в UITextField
, я имею в виду вставку текста таким образом, чтобы вызывались все методы делегата?
insertText:
, а также[textFiled sendActionsForControlEvents:UIControlEventEditingChanged];
. Ни один из этих способов не вызываетtextField:shouldChangeCharactersInRange:replacementString:
в iOS 11. - person Aravind G S   schedule 04.01.2018