Почему - [UIKeyInput hasText] всегда возвращает NO для UITextField? - PullRequest
1 голос
/ 11 декабря 2011

Почему - [UIKeyInput hasText] всегда возвращает NO для UITextField? Это ошибка с UIKit?

Например, следующий тест не пройден:

UITextField *textField = [[UITextField alloc] initWithFrame:CGRectZero];
textField.text = @"has text";
STAssertTrue([textField hasText], @"any text is text.");

1 Ответ

4 голосов
/ 11 декабря 2011

UITextField реализует UIKeyInput через протокол UITextInput, в котором говорится:

Протокол UIKeyInput - реализован для получения возможностей ввода и удаления текста в точке вставки.

(через: http://developer.apple.com/library/IOs/#documentation/UIKit/Reference/UITextInput_Protocol/Reference/Reference.html)

Как указывалось выше Маттиасом, он больше связан с резервным хранилищем и предназначен главным образом для ввода с клавиатуры системы.

В вашем примере выманипулирование свойством напрямую и обход ввода с помощью клавиатуры. Если поле будет первым отвечающим, появится клавиатура, а hasText вернет YES, как и ожидалось.

...