2012-06-26 3 views
1

У меня есть 2 текстовых поля. Я проверяю, когда оба текстовых поля заполнены, чем, я меняю кнопку возврата клавиатуры на «Go» .Else, она останется как «Return». Его работа прекрасна, тип возврата клавиатуры изменяется, только, когда я нажимаю на текстовое поле. Я хочу, чтобы изменить его автоматически, как только текстовые поля не пусты.Как изменить тип возврата клавиатуры, iPhone

Я попытался положить мой код

if ([txtEmail.text length] > 0 && [txtPass.text length] > 0) { 
    // Set the return key here, e.g: 
    txtEmail.returnKeyType = UIReturnKeyGo; 
    txtPass.returnKeyType = UIReturnKeyGo; 
} 
else { 
    // Set the return key here, e.g: 
    txtEmail.returnKeyType = UIReturnKeyDefault; 
    txtPass.returnKeyType = UIReturnKeyDefault; 
} 

на

- (void)textFieldDidBeginEditing:(UITextField *)textField{} 

но не работает для меня.

Любая идея, как я могу изменить кнопку возврата из возврата в Go, когда оба поля не являются пустыми, автоматически пользователь не имеет доступа к любому текстовому полю, чтобы изменить его.

+1

может быть, вы можете попробовать использовать метод - (BOOL) TextField: (UITextField *) TextField shouldChangeCharactersInRange: (NSRange) Диапазон replacementString: (NSString *) строка – rishi

ответ

2

Набор делегата для обоих textfields.then поместить свой код в viewDidLoad сразу после создания ссылки на UItextFields

if ([txtEmail.text length] > 0 && [txtPass.text length] > 0) 
{ 
txtEmail.returnKeyType = UIReturnKeyGo; 
txtPass.returnKeyType = UIReturnKeyGo; 
} 
else 
{ 

txtEmail.returnKeyType = UIReturnKeyDefault; 
txtPass.returnKeyType = UIReturnKeyDefault; 
} 
1

textFieldDidBeginEditting пожары перед началом редактирования, поэтому текст там не меняется.

Что вам нужно сделать, это обнаружить ключ, нажав, чтобы обнаружить изменения и на основе этого изменения returnKey. См. Этот вопрос: How can I detect a KeyPress event in UITextField? - он имеет дело с нажатием клавиши событий.

1
//have you set the delegate of your textField if not then please set it.. 

txtEmail.delegate = self; 
txtPass.delegate = self; 
1

проверки в файле заголовка UITextFieldDelegate protocal и

не забудьте установить делегат к себе.

txtEmail.delegate = self; 
txtPass.delegate = self;