Detect Change in UILabel Text

[亡魂溺海] 提交于 2019-11-29 06:38:41

You can use key-value observing (KVO):

[label addObserver:self
        forKeyPath:@"text"
           options:NSKeyValueObservingOptionNew
                 | NSKeyValueObservingOptionOld
           context:NULL];

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    if ([keyPath isEqualToString:@"text"]) {
        /* etc. */
    }
}

For Swift 3.2+

let observation = label.observe(\UILabel.text, options: [.new, .old]) { label, change in
        print("\(change.newValue as? String ?? "" )")
    }

Call observation.invalidate() when done observing.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!