знать о характере печати в текстовом поле - PullRequest
0 голосов
/ 04 января 2012

Я хочу знать о печати символов в UITextField

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

enter image description here

это мой код метода делегатов текстового поля

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSLog(@"print %@", textField.text);
    return YES;
}
  // this is my console output
  2012-01-04 12:40:41.736 Demo[1982:f803] print 
  2012-01-04 12:40:43.497 Demo[1982:f803] print h

Ответы [ 6 ]

2 голосов
/ 04 января 2012

Во время вызова - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string значения вашего текстового поля еще не изменились, поэтому вы получите вполне нормальный вывод.

Вы должны взять новых персонажей из replacementString:(NSString *)string.

2 голосов
/ 04 января 2012

Это правильное поведение, так как текущий фрагмент textField.text не изменяется, пока этот метод не возвращает YES. Если вы хотите, чтобы NSLog отображал ту же строку, которую вы видите, то вы должны построить ее, меняя символы «строка» в диапазоне «диапазон». Вот что произойдет с textField.text, когда вы вернете YES, и то, что не произойдет, если вы вернете NO.

0 голосов
/ 04 января 2012

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

[textField.text stringByReplacingCharactersInRange:range withString:string];
0 голосов
/ 04 января 2012

_should_... указывает на то, что еще не произошло

использования:

[textField.text stringByReplacingCharactersInRange:range withString:string];
0 голосов
/ 04 января 2012

Возможно, этот метод вызывается до ввода символа. Попробуйте вызвать NSLog после некоторой задержки с селектором.

0 голосов
/ 04 января 2012

Это не так. Это свойство метода shouldChangeCharacters. Это может помочь: Получение значения UITextField при нажатии клавиш?

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