UIKeyboardWillHide не срабатывает
Я прочитал много постов здесь на эту тему, но я нене могу найти ответ на мой вопрос, так что, надеюсь, вы выиграетене надоедать о другом посте на UIK на доске :-)
На мой взгляд контроллерРеализация я добавилself
в качестве наблюдателя для двух уведомленийUIKeyboardWillShowNotification
а такжеUIKeyboardWillHideNotification
Проходя селекторыkeyboardWillShow:
а такжеkeyboardWillHide:
обрабатывать уведомления. Как я касаюсьUITextField
,keyboardWillShow:
метод вызывается, но когда я нажимаю "Готово" кнопка (которая отклоняет клавиатуру)keyboardWillHide:
метод не вызывается.
Действительно я'хотел бы сделать мойUITextField
показать клавиатуру с "скрыть кнопку " в правом нижнем углу клавиатуры, но я нене в состоянии найти правильный тип клавиатуры. Может быть, мне нужно установить текстовое поле retuntype в "...Готово", Таким образом, я увидел это "вернуть" ключ превращается в "сделанный".
Поэтому я установил панель инструментов, чтобы быть моимUITextField
inputAccessoryView
, так что теперь я могу показать стандартную клавиатуру с панелью инструментов выше с "Готово" кнопка. Когда пользователь касается этой кнопки, я скрываюresignFirstResponder
метод.
Странно то, что когда я звонюresignFirstResponder
,UIKeyboardWillHideNotification
ISN»т отправил; По крайней мереkeyboardWillHide:
метод не вызывается.
Что вы мне предлагаете? Я действительно хотел отобразить клавиатуру с маленькой кнопкой со стрелкой вниз, чтобы скрыть клавиатуру, но и это решение может быть правильным, но яЯ хотел бы изменить размер представления, и для этого мне нужен наблюдатель.UIKeyboardWillHideNotification
Большое спасибо за помощь ...
(ДОБАВЛЕНО :)
В :viewDidLoad
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:[[self view] window]];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification
object:[[self view] window]];
Я взял эти декларации от одного изтвой» пост :-) Но воля Шоу работает ...
Действие "Готово" кнопка, которая 'вUIToolbar
тот's назначено бытьinputAccessoryView
моего текстового поля:
-(void)keyboardDone {
[msgTextField resignFirstResponder];
ЗАКРЫТО: ОК! Когда разработчик глуп ... это глупо :-) :-)
Это мой исправленный метод willHide:
-(void)keyboardWillHide:(NSNotification*)n {
NSDictionary* userInfo;
CGSize keyboardSize;
CGRect viewFrame;
/* This was the bad guy :) I forgot to delete it
* after I previously copied the willShow method that
* checks if keyboard is already shown (if so returns).
*
* if( keyboardIsShown )
* return;
*/
userInfo = [n userInfo];
keyboardSize = [[userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
viewFrame = [[self scrollView] frame];
viewFrame.size.height += ( keyboardSize.height - TABBAR_HEIGHT );
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:0.5];
[[self scrollView] setFrame:viewFrame];
[UIView commitAnimations];
keyboardIsShown = NO;
NSLog(@"HIDE\n");
}
Прежде всего яЯ хотел бы поблагодарить вас всех за эту бесполезную работу по оказанию помощи мне. Я'Я хотел бы дать вам несколько очков, поэтому япопробую поднятьсяточка интереса " для каждого ответа, но мне нужно выбрать правильный ... сложная часть ... :-)
Простите еще раз ... Я действительно нене вижу оператор if () ...