как определить длину uitextfield - PullRequest
1 голос
/ 10 октября 2010

Я пытаюсь получить, если поле uitext пусто, и если оно должно выполнить следующий код в ibaction.

float uu = ([u.text floatValue]);
float ss = ([s.text floatValue ]);
float aa = ([a.text floatValue ]);


float x1float = sqrt((uu * uu) +(2*aa*ss));


v.text = [[NSString alloc]initWithFormat:@"%f", x1float];

где v.text - текст внутри поля uitext

1 Ответ

5 голосов
/ 10 октября 2010

Я предполагаю, что ваша основная задача здесь заключается не просто в проверке, является ли свойство 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: не будет вызван, пока пользователь не начнет печатать в текстовом поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...