У меня есть UITextView, и я слушаю событие UIButton для выполнения действий над текстом внутри этого textView:
- (IBAction)buttonClicked {
NSString *text = myTextView.text;
//Do some work with the text.
myTextView.text = @""; //reset the textView.
}
Я не хочу, чтобы textView равнялся resignFirstResponder
.Проблема, с которой я сталкиваюсь: когда последний введенный символ был символом, клавиатура застревает в этом представлении и не сбрасывается в алфавитное представление клавиатуры по умолчанию, как это происходит в приложении обмена сообщениями и других приложениях.Как мне выполнить программную перезагрузку клавиатуры этим методом?
Это может быть повторный вопрос для этого вопроса .Но ответ, похоже, не работает для меня.
Это принятый ответ:
[editingField setKeyboardType:UIKeyboardTypeNumberPad];
[editingField reloadInputViews];
И это последний комментарий:
ОКОчевидно, что объявление его как UITextView вместо UIResponder влияет на его поведение во время выполнения.Это буквально единственное изменение, которое я сделал, и оно работает сейчас.Спасибо.
Но я не могу понять, какое небольшое изменение заставило его работать, поскольку я все еще борюсь с проблемой.
Я уже пробовал resignFirstResponder
и becomeFirstResponder
, но в быстрой последовательности scrollableView позади не устанавливается в соответствии с событием keyboardWillShow
.Я также попробовал [textView setKeyboardAppearance:UIKeyboardAppearanceDefault]
, но изменений по-прежнему нет.
Есть ли какой-либо метод API, который делает это (например, клавиатура сбрасывается при автоматическом нажатии «пробел»)?