Как я могу исправить это предупреждение? - PullRequest
0 голосов
/ 14 июня 2011

Я искал кнопку Готово для цифровой клавиатуры, затем я увидел этот вопрос:

Как показать кнопку «Готово» на цифровой клавиатуре iPhone

Я скопировал код ответа Арчи в свой, и я получил 2 предупреждения в этой области:

- (void)textFieldDidBeginEditing:(NSNotification *)note {
    [self updateKeyboardButtonFor:[note object]];
}


- (void)keyboardWillShow:(NSNotification *)note {
    [self updateKeyboardButtonFor:[self findFirstResponderTextField]];
}

- (void)keyboardDidShow:(NSNotification *)note {
    [self updateKeyboardButtonFor:[self findFirstResponderTextField]];
}

Предупреждения:

Несовместимые типы Objective C, инициализирующие 'struct NSNotification *', ожидаемый 'struct UITextField *'

Как я могу это исправить?Я пытался переключиться с помощью UITextField, но все это испортилось

Ответы [ 2 ]

1 голос
/ 14 июня 2011

Как предположил BoltClock, немного странно, что Арчи использует имя метода делегата в качестве обработчика уведомлений.Проблема может быть связана с тем, что вы, должно быть, принимаете протокол UITextFieldDelegate.Если вы сделали это, удалите строку, соответствующую уведомлению,

[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(textFieldDidBeginEditing:)
                                             name:UITextFieldTextDidBeginEditingNotification 
                                           object:nil];

, а затем отредактируйте метод textFieldDidBeginEditing:, став делегатом текстовых полей,

- (void)textFieldDidBeginEditing:(UITextField *)textField { 
    [self updateKeyboardButtonFor:textField]; 
}

Или, альтернативно, переименуйте вхождения textFieldDidBeginEditing: с помощью другого подходящего имени метода

0 голосов
/ 14 июня 2011

textFieldDidBeginEditing - это не уведомление, это метод делегата. Ожидаемая подпись - (void)textFieldDidBeginEditing:(UITextField *)aTextField

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...