Включить UIButton, если поле UITextField не пусто в приложении для iPhone.

В моем приложении у меня есть два текстовых поля (имя пользователя и пароль) и кнопка пользовательского интерфейса на странице входа.

Я хочу включить кнопку, если текстовое поле (пароль) имеет текст.

Я создал UITextfield и UIbutton со свойством ниже в viewDidLoad().

 self.txtFieldPassword.clearButtonMode = UITextFieldViewModeWhileEditing;
[self.btnLogin setEnabled:NO];

Я пробовал приведенный ниже код, и мне не повезло.

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (textField == self.txtFieldPassword) {

    // checking for any whitespaces
    if(([string rangeOfString:@" "].location != NSNotFound))
    {
        return NO;
    }  

    if( [[self.txtFieldPassword.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] )
        self.btnLogin.enabled = YES;
    else
        self.btnLogin.enabled = NO;
}

return YES;
}

но, если я удалил строку ниже в UitextField, это сработало.

self.txtFieldPassword.clearButtonMode = UITextFieldViewModeWhileEditing;

я хочу включить кнопку с указанным выше свойством. Как этого добиться?

Спасибо!!!


person user2136    schedule 09.01.2012    source источник


Ответы (1)


Вы можете просто проверить string.length == 0 и range.length > 0; это означает удаление. Однако на самом деле вам нужно просто выполнить ожидающую модификацию, а затем проверить, что у вас все еще есть непустая строка.

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSString *testString = [textField.text stringByReplacingCharactersInRange:range withString:string];
testString = [testString stringByTrimmingCharactersInSet:
              [NSCharacterSet whitespaceAndNewlineCharacterSet]];
if( testString.length)
    myButton.enabled = YES;
else
    myButton.enabled = NO;
}
- (BOOL)textFieldShouldClear:(UITextField *)textField{
 _done_button.enabled = NO;
  return YES;
}

вы можете добиться этого с помощью self.txtFieldPassword.clearButtonMode = UITextFieldViewModeWhileEditing; имущество. у меня все работает, хорошего дня

person Balakrishnan Mca    schedule 09.01.2012