1

为什么 -[UIKeyInput hasText] 总是为 UITextField 返回 NO?这是 UIKit 的错误吗?

例如,以下测试失败:

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

1 回答 1

4

UITextField 通过 UITextInput 协议实现 UIKeyInput,其中规定:

UIKeyInput 协议——用于在插入点获取文本输入和删除的能力。

(通过:http: //developer.apple.com/library/IOs/#documentation/UIKit/Reference/UITextInput_Protocol/Reference/Reference.html

正如 Mattias 上面所建议的,它更多地与后备存储有关,主要用于通过系统键盘进行输入。

在您的示例中,您正在直接操作属性并绕过键盘输入。通过给字段第一响应者,将显示键盘,并且 hasText 将按预期返回 YES。

于 2011-12-11T18:18:40.033 回答