Действие кнопки возврата на UIKeyboard отличается от UITextView resignFirstResponder - PullRequest
0 голосов
/ 14 июля 2011

У меня есть UITextView для пользователя, чтобы ввести текст сома.Когда UITextView вызывается с помощью:

[textView becomeFirstResponder];

, я добавляю rightBarButtonItem, который позволяет пользователю отклонить UIKeyboard с помощью:

[textView resignFirstResponder];

Интересно, смогу ли я подключить клавишу возвратаUIKeyboard, чтобы сделать какое-то действие, но и отклонить его самостоятельно.Действие - сохранить некоторые данные, добавленные в textView.

Итак, как можно реализовать действия, когда оба вызывают resignFirstResponder, но делают разные вещи.

Вот код, который я использую.

-(void)viewDidLoad {
  self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] 
    initWithTitle:@"Cancel"
    style:UIBarButtonItemStyleBordered
    target:self action:@selector(cancelEditing)] autorelease];
}
- (void)textViewDidEndEditing:(UITextView *)textview {
    [self saveSomeData];
}

- (void)cancelEditing {
    [commentTextView resignFirstResponder]; 
}

Если это возможно, я понимаю, что resignFirstResponder также вызывает textViewDidEndEditing в обоих случаях.

Заранее спасибо!

1 Ответ

2 голосов
/ 14 июля 2011

Для UITextView вам необходимо реализовать UITextViewDelegate и использовать метод:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

Проверьте параметр текста, если он равен "\ n", то вы можете отклонить клавиатуру.

РЕДАКТИРОВАТЬ : речь шла о TextView, сохраняя ниже на всякий случай, если это необходимо.

Установите ваш контроллер в качестве делегата UITextField.Затем реализуйте:

- (BOOL)textFieldShouldReturn:(UITextField *)textField

В этом методе вы можете подать в отставку первого респондента.

UITextField также должен автоматически активировать клавишу Return.

...