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

发布于 2025-01-01 09:55:39 字数 222 浏览 0 评论 0原文

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

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

Just had a question regarding the UILabel class. I know that the UITextField control has a delegate for when the editing has changed, but I was wondering if the UILabel has a similar field. The reason I ask is that my application queries the network for when certain pieces of information change and updates them accordingly and I don't want to hard code in my update the name of the label I want to watch for just to do a small task regarding it. If it has a delegate or something equivalent to it so that my class can monitor for this information that would be great.

If not then any advice would be greatly appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

岁月苍老的讽刺 2025-01-08 09:55:39

您可以使用 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");
}

You can use KVO to find out or perform some code when the text changes like this :

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

and then listen for the changes like this

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

    NSLog(@"the text changed");
}
私野 2025-01-08 09:55:39

如果您的代码不执行操作,UILabel 就无法更改其文本,那么为什么会有委托在更改时告诉您呢?您已经知道... UITextField 有一个,因为用户可以编辑文本,以便在更改时通知您。

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

A UILabel cannot change its text without your code doing it, so why would there ever be a delegate that told you when it's changed? You already know... UITextField has one because the user can edit the text so you're told when it's changed.

So basically, no, there is no delegate method and you shouldn't even need one.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文