Im Wesentlichen ist hier mein Code in einer Unterklasse von NSTextFieldCell:NSCell -stringValue ruft -setStringValue auf?
- (void)setStringValue:(NSString *)aString {
[super setStringValue:aString];
[self doSomething];
}
- (void)doSomething {
NSLog(@"%@", [self stringValue]);
}
Im Grunde versuche ich meine Unterklasse in der Zeichenfolge Wert einer Änderung benachrichtigt zu bekommen, und wenn sich der Wert ändert, möchte ich die Unterklasse von NSCell, um etwas mit diesem neuen Wert machen zu können (Die Verwendung von -attributedStringValue wäre sogar noch besser, weil ich sie für spezielle Zeichnungen zwischenspeichern möchte). Das Problem ist, aus irgendeinem Grund Aufruf von - (NSString *) stringValue führt zu einem Aufruf von - (void) setStringValue, die am Ende wird ...
... eine Endlosschleife. Kann mir das jemand aufklären - und eine mögliche Abhilfe?
Wie rufen Sie StringValue auf? Ich habe deinen Code ausprobiert, und ich habe keine Schleife bekommen, es schien gut zu funktionieren. – rdelmar
@rdelmar Ich verwende die Standardimplementierung von stringValue. Vielleicht habe ich etwas Offensichtliches in meinem Code verpasst, aber ich schreibe gerade eine Unterklasse für eine NSTextfieldCell, die sich zufällig in einer NSTableView befindet (mit dem NSTextField an die TableCellView gebunden) – Vervious