定期检查UITextField的值

时间:2010-10-06 20:40:57

标签: iphone objective-c ipad

我有一个扫描仪正在将文本读入UITextField,看起来它一次只能是一个字符。所以每1/2秒左右我想检查一下UITextField的值,以便我可以获取该值。

2 个答案:

答案 0 :(得分:5)

两个选项:

1)设置文本字段的delegate,然后在所述委托的shouldChangeCharactersInRange方法中捕获更改。

2)使用NSTimer对象。

在大多数情况下,第一种方法是优越的,但如果您想要经常检查而不是在发生变化时捕获更改,则需要使用NSTimer。

答案 1 :(得分:0)

我认为有一种比威廉所说的更好的方法,尽管两种方法都有效。

最好的选择是将UIControlEventEditingChanged事件设置为操作。例如:

[textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];

这将调用方法:

- (void)textFieldDidChange:(id)sender { }

每次文本字段更改。确保您还在界面中声明了该方法。您在{}(大括号)之间放置的语句将针对文本中的每个更改执行。

但是,如果您确实想要定期检查文本框的值而不仅仅是更改,则可以使用以下代码:

[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(textFieldDidChange) userInfo:nil repeats:YES];

-Dan