是否可以为 UILabel 的文本属性更改时设置通知?当我找不到用于 UILabel 的那个时,我尝试了用于 UITextFields 的那个,但它没有用。
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(posttosocial)
name:UITextFieldTextDidChangeNotification
object:nowplaying];
是否可以为 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()
观察完毕就打电话。