2013-01-14 7 views
9

Czy można ustawić powiadomienie o zmianie właściwości tekstowej UILabel? Próbowałem tej używanej dla UITextFields, gdy nie mogłem znaleźć jednego dla UILabel, ale to nie działało.Wykryj zmiany w tekście UILabel

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

Spróbuj użyć klucz-wartość obserwacji. –

+0

Jak to zrobić w przypadku UILabel? – user717452

+2

@userXXXX '[label addObserver: self forKeyPath: @" text "options: NSKeyValueObservingOptionNew | Kontekst NSKeyValueObservingOptionOld: NULL]; 'następnie implementuj odpowiednie metody obserwatora w' self'. –

Odpowiedz

21

Można użyć klucz-wartość obserwacji (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. */ 
    } 
}