iOS如何查明UILabel是否更改了它的文本

时间:2012-02-01 16:18:56

标签: ios delegates uilabel textchanged

刚刚对UILabel类提出了疑问。我知道UITextField控件有编辑更改时的委托,但我想知道UILabel是否有类似的字段。我问的原因是我的应用程序在网络中查询某些信息的变化并相应地更新它们并且我不想在我的更新中硬编码我想要观察的标签名称只是为了完成一项小任务关于它。如果它有一个委托或类似的东西,以便我的班级可以监控这些信息,那将是很好的。

如果没有,那么任何建议将不胜感激。

2 个答案:

答案 0 :(得分:19)

当文本更改时,您可以使用KVO查找或执行一些代码:

[somelabel addObserver:self forKeyPath:@"text" options:NSKeyValueObservingOptionNew context:NULL];

然后听取这样的更改

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {

    NSLog(@"the text changed");
}

答案 1 :(得分:1)

如果没有您的代码,UILabel无法更改其文本,那么为什么会有一个代表在更改时告诉您?您已经知道... UITextField有一个,因为用户可以编辑文本,以便在更改时告知您。

所以基本上,不,没有委托方法,你甚至不需要一个。