私は、選択したテーブル行を詳しく調べるパネルを持っています。明らかに、パネルの表示は頻繁に更新する必要があり、私はそのタスクをNSWindowControllerサブクラスに移しました。プロパティのアクセサーをivarのメソッドに転送する
テキストフィールドの文字列値やNSImageViewsの画像値などのカスタムNSWindowControllerを@property
にします。アクセサーには新しいコードは必要ないので、@synthesize
にしたいと思います。残念ながら(私にとっては)@synthesize property=ivar
にキーパスを使用するオプションはありません。
明白な解決策は、フォームの私自身のアクセサ
- (void)setTitle:(NSString *)title
{
[titleTextField setStringValue:title];
}
- (NSString *)title
{
return [titleTextField stringValue];
}
を書くことですが、私はむしろ、いくつかのプロパティごとに手でそれを行う必要はありませんと思います。
もっと簡単な方法はありますか?おそらく、別のオブジェクトの特定のプロパティ(objectValue
などを除いて、実際には適切なプロパティではない)に転送するプロパティを設定する一般的な方法はありますか?
「私はアクセサーに新しいコードは必要ありません」とは、最初のアクセス時などに値を遅延ロードするなどしたくないということです。合成されたアクセサーは可能です)。 – Richard