Почему - [UIKeyInput hasText] всегда возвращает NO для UITextField? Это ошибка с UIKit?
Например, следующий тест не пройден:
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectZero];
textField.text = @"has text";
STAssertTrue([textField hasText], @"any text is text.");