Я хочу скрыть клавиатуру, когда пользователь нажимает кнопку возврата в UITextView
объект в iphone.Однако, как ни странно, это не работает для UITextView
, но работает для UITextField
.Я не могу понять, почему ...
Это то, что я сделал:
1) Я создал приложение на основе представления в XCode4.
2) в .xibсозданные UITextView
, UITextField
и UIButton
объекты
3) Помечены как UITextField
, так и UITextView
делегаты Владельцу файла в Outlets
4) Добавлен <UITextFieldDelegate>
в @interface UIViewController в .h
5) Добавлена функция textFieldShouldReturn
в .m
Вот коды:
.h файл
@interface keyboardDisappearViewController : UIViewController <UITextFieldDelegate>
{
UITextView *textBoxLarge;
UITextField *textBoxLittle;
}
@property (nonatomic, retain) IBOutlet UITextView *textBoxLarge;
@property (nonatomic, retain) IBOutlet UITextField *textBoxLittle;
- (IBAction)doSomething:(id)sender;
@end
.m файл
- (BOOL) textFieldShouldReturn:(UITextField *)theTextField
{
NSLog(@"textFieldShouldReturn Fired :)");
[textBoxLarge resignFirstResponder];
[textBoxLittle resignFirstResponder];
return YES;
}
Удивительно, но клавиатура исчезает в случае textBoxLittle (UITextField), ноне в случае textBoxLarge (UITextView)
В качестве дополнительной проверки я сделал кнопку для вызова функции doSomething
- (IBAction)doSomething:(id)sender {
[textBoxLarge resignFirstResponder];
[textBoxLittle resignFirstResponder];
}
Когда я нажимаю кнопку, клавиатура исчезает в обоих текстовых полях.
Это сводит меня с ума, почему textFieldShouldReturn работает для небольшого текстового поля, но НЕ для большого текстового поля.
Пожалуйста, помогите!