我有一个导航控制器,它的控制器A有一个UITextField。
在另一个控制器视图B中,我在控制器A上调用一个公共方法来清除UITextField上的文本。
在控制器A中,有一个实现的委托:
-(BOOL)textField: (UITextField *)textField
shouldChangeCharactersInRange: (NSRange)range
replacementString: (NSString *)string当我试图清除UITextField (不在视图中)时,我无法触发shouldChangeCharactersInRange委托。仅当UITextField处于查看状态时,它才能像广告中所宣传的那样工作。
我想知道,既然我在清除UITextField时看不到它,那么是否存在我不知道的含义?这是设计出来的吗?
基本上,设置文本字段的属性不会触发文本字段。只有键盘输入才会。
发布于 2010-02-19 23:44:29
来自the doc
每当用户在文本字段中键入新字符或删除现有字符时,
文本字段都会调用此方法。
而不是程序员。所以这是设计出来的。
发布于 2010-02-19 23:44:14
我一直认为以编程方式更改UITextField的text属性不会触发-textField:shouldChangeCharactersInRange:replacementString:.如果清除文本字段中的文本还不够,我认为您还应该手动执行适当的代码。
https://stackoverflow.com/questions/2297410
复制相似问题