Включите UIButton, если UITextField не пуст в приложении для iPhone - PullRequest
3 голосов
/ 09 января 2012

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

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

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

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

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

- (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;

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

Спасибо !!!

1 Ответ

12 голосов
/ 09 января 2012

Вы можете просто проверить для 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; имущество. у меня все работает отлично, хорошего дня

...