Ich habe ein Panel, das auf der ausgewählten Tabellenzeile ausgearbeitet. Offensichtlich muss die Anzeige des Panels oft aktualisiert werden, und ich habe diese Aufgabe in eine NSWindowController-Unterklasse verschoben.Forwarding Eigenschaft Accessoren auf eine Ivar-Methode
Ich möchte die benutzerdefinierte NSWindowController @property
s für Dinge wie die Zeichenfolge Werte in den Textfeldern und die Bildwerte in den NSImageViews haben. Weil ich keinen neuen Code in den Accessoren brauche, möchte ich sie @synthesize
ihnen. Leider (für mich) gibt es keine Option, Schlüsselpfade in @synthesize property=ivar
zu verwenden.
Die offensichtliche Lösung ist meine eigene Accessoren der Form
- (void)setTitle:(NSString *)title
{
[titleTextField setStringValue:title];
}
- (NSString *)title
{
return [titleTextField stringValue];
}
zu schreiben, aber ich möchte lieber nicht, dass für jeden von mehreren Eigenschaften von Hand zu tun haben.
Gibt es einen einfacheren Weg? Vielleicht ist eine generische Art, eine Eigenschaft einzurichten, die an eine bestimmte Eigenschaft (außer objectValue
etc. sind eigentlich keine richtigen Eigenschaften) eines anderen Objekts weiterleiten soll?
Was ich mit "Ich brauche keinen neuen Code in den Accessoren" gemeint ist, dass ich nichts tun möchte, wie einen Wert beim ersten Zugriff langsam laden usw., so würden synthetisierte Accessoren akzeptabel sein (wenn sie möglich wären)). – Richard