У меня есть вид UIViewController
, который имеет UITextField
в качестве подзаголовка. Текстовое поле реализует событие на UIControlEventEditingDidBegin
. Это событие устанавливает inputAccessoryView
текстового поля и добавляет «теневой» вид в представлении контроллера вида для блокировки взаимодействия с представлением.UITextView в inputAccessoryView не будет resignFirstResponder
inputAccesoryView
является UIView
с UITextView
в качестве подсмотра. UITextView
устанавливается как firstResponder
, когда отображается клавиатура (зарегистрирована на UIKeyboardDidShowNotification
).
Когда «тень» вид прикосновения я называю следующий метод:
-(void)dismissKeyboard
{
self.dimScreenView.alpha = 0.0f;
self.writingView.txtView.text = @"";
[self.writingView.txtView resignFirstResponder];
}
Но клавиатура не исчезает, когда вид тени прикосновения. Я пробовал звонить [self.writingView.txtWritingField endEditing:YES]
и [self.writingView endEditing:YES]
, но я не могу заставить его работать.
Должен ли я сделать что-то особенное, чтобы клавиатура исчезла, когда inputAccessoryView
имеет подзаголовок, то есть firstResponder
?
Update:
Оказывается, что UITextView
и UITextField
оба возвращается NO
isFirstResponder
на имущество, даже если я не называю resignFirstResponder
. Как ни один из текстовых представлений не будет firstResponder
, пока клавиатура все еще присутствует?
вы уверены, что dismissKeyboard срабатывает? – heximal
Да, у меня были точки разрыва, и теневой вид также исчезает при касании. –
writingView и txtView не ноль? – heximal