2014-01-07 1 views
0

У меня есть приложение для ввода данных, которое я разработал в первую очередь с iOS7 в фокусе, но оно будет поддерживать ios 6. Я заметил, что когда я пытаюсь проверить, пустой ли UITextField, когда я пытаюсь для проверки формы в iOS6 он скажет мне, что он не пуст, если есть текст-заполнитель. В iOS 7 у меня нет этой проблемы.Как игнорировать текст заполнителя в iOS6 UITextField

Есть ли у кого-нибудь эффективное решение для этого, за исключением соответствия каждого UITextField's контента с его текстом места размещения для всего UITextFields во всем приложении?

EDIT: Если валидация является проблемой, вот мой код проверки. Очень просто перебираю массив с обязательным UITextFields и проверяем, есть ли в них какой-либо вход.

-(void)checkIfComplete{ 
    BOOL complete = YES; 
    for(int i = 0; i < self.mandatoryFields.count; i++){ 
     UITextField *tempTextField = self.mandatoryFields[i]; 

     if([tempTextField.text isEqual: @""]){ 
      complete = NO; 
     } 
    } 

    if(complete){ 
     self.btnSave.enabled = YES; 
    }else{ 
     self.btnSave.enabled = NO; 
    } 
} 

EDIT 2: Окей это очень странно. Когда я загружаю ViewController с UITextFields, валидация неверна (это говорит о том, что форма завершена, даже если это не так). Но если я вхожу в UITextField, напишите что-нибудь, а затем удалите то, что я только что написал, правильность проверки (он говорит, что форма является неполной, когда она есть). Я устанавливаю свои заполнители из раскадровки, если это имеет значение.

Спасибо

+1

Опубликовать Ваше соответствующий код. Нет никакого способа, чтобы «заполнитель» текстового поля вмешивался в его значение «text». Должно быть что-то еще происходит. – rmaddy

+0

@rmaddy Спасибо, обновили – PaperThick

+0

Вы не объясните, в чем проблема с размещенным кодом. Есть ли поля, которые выглядят пустыми, но проверка не проходит? Возможно, у них есть место в них или в другом пробеле. Используйте отладчик и пропустите этот код и посмотрите, что происходит. – rmaddy

ответ

5

Попробуйте эту

-(void)checkIfComplete{ 
    BOOL complete = YES; 
    for(int i = 0; i < self.mandatoryFields.count; i++){ 
     UITextField *tempTextField = self.mandatoryFields[i]; 

     if(tempTextField.text.length == 0){ 
      complete = NO; 
      break; 
     } 
    } 

    self.btnSave.enabled = complete; 
} 
+0

Это работает! Спасибо человеку, я не могу поверить, что я не тестировал это – PaperThick

+2

Единственное реальное различие между этим кодом и исходным кодом OP заключается в том, что этот код обрабатывает случай текстового поля 'text', который равен' nil'. И, похоже, это важное различие в этом случае. – rmaddy