Проверка UITextfield - PullRequest
       1

Проверка UITextfield

1 голос
/ 20 декабря 2010

Я пытаюсь проверить мои текстовые поля. У меня есть два текстовых поля Имя пользователя и Пароль. Я хочу проверить, что если текстовое поле имени пользователя остается пустым, не позволяйте пользователю переходить в текстовое поле пароля, пока он не введет имя пользователя. Любой пример кода для этого будет высоко ценится.

Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 20 декабря 2010

Если у вас есть какая-то кнопка отправки, я не рекомендую пытаться искусственно удерживать пользователя в одном поле. Вместо этого установите submitButton.enabled = NO, пока оба поля не будут действительными. Если вы укажете, что поля обязательны для заполнения, пользователь не будет так смущен, как если бы он не мог изменить фокус текстового поля.

Для проверки в IB установите оба текстовых поля EditingChanged, указывающие на метод в вашем viewContoller, что-то вроде ValidateEntry. Дайте им оба уникальных тега, только 1 и 2 или что у вас есть.

В поле ValidateEntry определите, какой из них редактируется - отправитель (id) будет иметь тег, указывающий, какой именно, и когда оба поля действительны, сделайте кнопку отправки доступной, submitButton.enabled = YES. Если любой из них недействителен, отключите его.

На мой взгляд, это намного удобнее и приводит к тому же самому: нет отправки пустых полей.

1 голос
/ 20 декабря 2010

отключить ваш пароль textField в viewDidLoad

yourPassWordTextField.enabled=NO;

и добавьте уведомление в textField с помощью

NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];

    [notificationCenter addObserver:self
                           selector:@selector (handle_TextFieldTextChanged:)
                               name:UITextFieldTextDidChangeNotification
                             object:self.yourUserIdTextField];

- (void) handle_TextFieldTextChanged:(id)notification {

    if(![yourUserIdTextField.text isEqualToString:@""])
    {   
          yourPassWordTextField.enabled=YES;
    }
       else
      yourPassWordTextField.enabled=NO;
}

в .h файле

-(void)registerForTextFieldNotifications;

подтвердите это тоже.

0 голосов
/ 20 декабря 2010

Вы делаете свое имя пользователя текстовым полем как firstResponder. Затем в Textfield сделал метод начала, проверив, введены ли символы. А в textfieldDidEndEditing, проверьте, не является ли текстовое поле пустым. Если поле не пустое, то разрешите полю пароля становиться первым респондентом, иначе сохранитепервый респондент как само текстовое поле имени пользователя.

0 голосов
/ 20 декабря 2010

Вы хотите проверить это в – textFieldDidBeginEditing: делегат

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
if(textField==passwordField)
{
if([userField.text isEqualToString:@""])
//Dont leave user field empty
}
}
...