Mam NSTextField związany z mojego modelu. Jeśli programowo zmieniam treść pola tekstowego, model nie zostanie zaktualizowany. Wiem, że masz update the model instead.Z wiązaniami kakao, zmiana wartości NSTextField programowo nie aktualizuje modelu
Ale staram się zaimplementować podklasę NSTextField, która rozpoznaje przewinięcie, podczas gdy myszka unosi się nad nim, aby zmienić jego wartość liczbową. Oczywiście nie mam dostępu do modelu z tej podklasy. Masz jakieś sugestie, jak to zrobić?
ROZWIĄZANIE (dzięki NOA):
- (void)scrollWheel:(NSEvent *)theEvent {
[self setFloatValue:[self floatValue] - [theEvent deltaY]];
NSDictionary *bindingInfo = [self infoForBinding: NSValueBinding];
NSObject *boundObject = [bindingInfo valueForKey:NSObservedObjectKey];
NSString *keyPath = [bindingInfo valueForKey:NSObservedKeyPathKey];
[boundObject setValue:[NSNumber numberWithFloat:[self floatValue]]
forKeyPath:keyPath];
}
Tak jak powiedziałem, używam wiązań. Wartość mojego pola tekstowego jest powiązana z właściwością mojego obiektu modelu zgodną z KVO. Mój problem polega na tym, że powiązanie aktualizuje tylko właściwość obiektu modelu, gdy ręcznie zmieniam wartość pola tekstowego, ale nie wtedy, gdy jest ona zmieniana programowo. – DrummerB
Mój błąd, myślałem, że aktualizacje programowe dla powiązanych elementów sterujących zaktualizowały model. Poszukuję kodu do opublikowania. – paulmelnikow
Niestety tak nie jest. Dzięki za próbę pomocy! – DrummerB