2013-01-14 7 views
9

Ist es möglich, eine Benachrichtigung festzulegen, wenn eine UILabel-Texteigenschaft geändert wird? Ich habe versucht, die für UITextFields verwendet, wenn ich nicht für eine UILabel finden konnte, aber es hat nicht funktioniert.Änderung in UILabel-Text erkennen

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

Versuchen beobachtet Schlüssel-Wert verwendet wird. –

+0

Wie würde ich das für ein UILabel tun? – user717452

+2

@userXXXX '[label addObserver: self fürKeyPath: @" text "Optionen: NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld-Kontext: NULL]; 'Implementieren Sie dann die entsprechenden Observer-Methoden für' self'. –

Antwort

21

Sie können beobachten Schlüssel-Wert verwenden (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. */ 
    } 
}