2014-01-21 2 views
-2

Я создал это в моей .h:IOS textFieldShouldReturn не работает

@interface Class : UIViewController <UITextFieldDelegate 

А потом в моей .m:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {  
if (textField == username) { 
    [textField resignFirstResponder]; 

}else if (textField == password) { 
    [textField resignFirstResponder]; 

} 
return YES; 
} 

, но когда я пытаюсь запустить некоторый код внутри либо если для имени пользователя или пароля он никогда не запускается. Я пытался отладить его, но когда я нажимаю на текстовое поле, он просто открывает клавиатуру, и она не отлаживается. Так кажется, что textFieldShouldReturn никогда не запускается, почему?

Любая помощь очень ценится.

РЕШЕНИЕ: Добавить: username.delegate = password.delegate = self; в вашем .m файле

+1

набор 'делегат' для вашего текстового поля? –

+0

Какое имя пользователя и пароль? –

+1

Вы установили делегат в поле «имя пользователя или пароль»? – Akhilrajtr

ответ

0

Цель textFieldShouldReturn: метод должен определить, должно ли текстовое поле обрабатывать нажатие кнопки возврата на [виртуальной] клавиатуре.

Предполагаете, что вы ищете метод textFieldShouldEndEditing: delegate.

PS. Предполагаю, что вы установили пароль.delegate = username.delegate = self;

+1

Нет, я пропускаю делегатов для каждого поля, могу ли я просто установить их в свой viewDidLoad? и как? – user2408952

+0

thx после добавления username.delegate = self; password.delegate = self; in viewDidLoad Теперь я могу отлаживать – user2408952

+0

Вы можете даже писать в однострочном «наборе»: password.delegate = username.delegate = self; –

0

Это не будет вызываться, коснувшись текстового поля. Это вызывается только при нажатии клавиши возврата на клавиатуре. Убедитесь, что вы правильно установили делегат.

0

Эта функция вызывается, когда вы нажмете клавишу возврата на клавиатуре и не тогда, когда вы касаетесь текстовое поле

Функция вызывается при нажатии на текстовое поле является

- (void)textFieldDidBeginEditing:(UITextField *)textField 
if (textField == username) { 
    [textField resignFirstResponder]; 

}else if (textField == password) { 
    [textField resignFirstResponder]; 

} 
0

вы можете даже попытаться установить делегат для текстового поля имени пользователя и пароля из xib/раскадровки, подключив делегат-выход к владельцу файла. что может решить вашу проблему.

Смежные вопросы