1. Определите готовую кнопку (= клавиша возврата):
textField.returnKeyType = UIReturnKeyDone;
2.Добавьте прослушиватель действий:
[textField addTarget:self action:@selector(textFieldDoneEditing:) forControlEvents:UIControlEventEditingDidEndOnExit];
3. Определите событие-действие:
- (IBAction)textFieldDoneEditing:(id)sender {
[sender resignFirstResponder];
}
Веселись!
РЕДАКТИРОВАТЬ:
Здесь вы можете найти подробные инструкции, как добавить панель инструментов с UITextField Клавиатура выше и выше: http://www.randomsequence.com/articles/adding-a-toolbar-with-next-previous-above-uitextfield-keyboard-iphone/
EDIT2:
Теперь у меня есть очень хороший пример для вас: «Это представление расширяет UITextView, добавляя поверх клавиатуры, связанной с этим UITextView панель инструментов с кнопкой« Готово »"
Я проверяю код, и это намного проще, чем в первом примере:
http://blog.demay -fr.net / 2009/07 / cocoa-how-to-add-a-панель инструментов с кнопкой сверху на uitextview-в-порядке-добавить-убрать-кнопку /
EDIT3:
Хм, нет, я не проверяю код.Но я проверю это сейчас!
1.Проблема: правильная инициализация.Если я добавляю UITextView в IB, вызывается initWithCoder:
- (id)init {
NSLog(@"init");
if (self = [super init]) {
//register a specific method on keyboard appearence
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
}
return self;
}
- (id)initWithCoder:(NSCoder *)decoder {
NSLog(@"initWithCoder");
if (self = [super initWithCoder:decoder]) {
//register a specific method on keyboard appearence
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
}
return self;
}
- (id)initWithFrame:(CGRect)frame {
NSLog(@"initWithFrame");
if (self = [super initWithFrame:frame]) {
//register a specific method on keyboard appearence
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
}
return self;
}
2.Проблема: Нет представления с префиксом "UIKeyboard":
for (UIWindow *keyboardWindow in [[UIApplication sharedApplication] windows]) {
NSLog(@"keyboardWindow = %@", keyboardWindow);
for (UIView *keyboard in [keyboardWindow subviews]) {
NSLog(@"keyboard = %@", keyboard);
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES) {
// THERE'S NO VIEW 'UIKeyboard'!!!
}
}
}
Код неработа, извините ... я не знаю, почему нет представления "UIKeyboard" ... Может быть, первый пример поможет вам на этом этапе, и вы сможете создать собственное решение.