Если вы хотите заменить клавиатуру, скажем, UIPicker
как inputView
(с, конечно, панелью инструментов как inputAccesotyView
), то этот обходной путь может помочь ...
- Реализация
textFieldShouldBeginEditing:
- внутри положил
textField.userInteractionEnabled = NO;
- Затем, когда вы собираетесь закрыть
UIPickerView
, установите для него значение YES.
Сделав это, вы сможете нажать на UITextField
и показать варианты выбора из UIPickerView
, в настоящее время ваш UITextField
действительно не будет реагировать на любое событие касания (это включает в себя касание и удержание для вырезания, копирования и вставки). Тем не менее, вы должны помнить, чтобы установить его обратно в YES, когда вы закрываете UIPickerView
, однако вы не сможете снова получить доступ к UIPickerView
.
Единственный момент, когда он терпит неудачу, это когда пользователь начинает с нажатия и удерживания UITextView
, тогда вы впервые увидите вырезанную копию и вставку. Вот почему вы всегда должны проверять свои данные. Это самое простое, о чем я могу думать. Другой вариант состоял в том, чтобы использовать UILabel
для текста только для чтения, но вы упустили множество отличных функций из UITextView
.