Я предполагаю, что ваша основная задача здесь заключается не просто в проверке, является ли свойство text
для UITextField
пустым, а в том, чтобы заставить его выполнять эту проверку при вводе пользователем. Чтобы просто проверить, является ли текстовое поле пустым, вы просто должны сделать:
if (aTextField.text == nil || [aTextField.text length] == 0)
Однако, если вы пытаетесь заставить текстовое поле «автоматически» выполнять вычисления всякий раз, когда оно становится пустым, выполните следующие действия: Установите делегат для UITextField
. Метод делегата textField:shouldChangeCharactersInRange:replacementString:
вызывается до изменения любых символов в текстовом поле. В этом методе сделайте что-то вроде:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
[self performSelector:@selector(updateEmptyTextField:) withObject:textField afterDelay:0];
return YES;
}
Вы выполняете updateEmptyTextField
после задержки, потому что UITextField
еще не применил изменение, которое только что утвердил его делегат. Затем в updateEmptyTextField:
сделайте что-то вроде этого:
- (void)updateEmptyTextField:(UITextField *)aTextField {
if (aTextField.text == nil || [aTextField.text length] == 0) {
// Replace empty text in aTextField
}
}
Примечание: вам может потребоваться вручную выполнить проверку один раз, когда ваш вид впервые отображается, потому что textField:shouldChangeCharactersInRange:replacementString:
не будет вызван, пока пользователь не начнет печатать в текстовом поле.