繁体   English   中英

检测UILabel文本中的更改

[英]Detect Change in UILabel Text

是否可以为UILabel的文本属性更改时设置通知? 当我找不到UILabel时,我尝试了用于UITextFields的那个,但它没有用。

 [[NSNotificationCenter defaultCenter]
 addObserver:self
 selector:@selector(posttosocial)
 name:UITextFieldTextDidChangeNotification
 object:nowplaying];

您可以使用键值观察(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. */
    }
}

适用于Swift 3.2+

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

完成观察后调用observation.invalidate()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM