Cocoa バインディングを介して設定された、ビューベースの NSTableView を作成しようとしています。
私の NSArrayController は、次のように、アプリケーション デリゲートjobs
のプロパティの配列プロパティを指しています。currentUser
その配列内の各モデルが次のクラスであると予想しますHSJob
。
ただし、テーブル ビューを NSArrayController にバインドすると、arrangedObjects
何らかの理由でそのプロパティがクラスに属していると見なされますHSJob
( NSArray
.
明らかに、これでは個々のセルの内容を Job オブジェクトのプロパティにリンクできず、テーブル ビューに何も表示できません。
それで、私はここで何が間違っていますか?
アップデート
実験のために、いくつかの手動の値の更新通知を実装し、すべてを AppDelegate に移動することさえ決定しました。ここでは、HSJob
いくつかの NSDictionaries 用に独自のクラスを変更しました。
AppDelegate.h
@property NSArray *things;
AppDelegate.m
@synthesize things = _things;
- (NSArray *)things {
if (!_things)
return @[@{@"name": @"Default Thing"}];
else
return _things;
}
- (void)setThings:(NSArray *)things {
[self willChangeValueForKey:@"things"];
_things = things;
[self didChangeValueForKey:@"things"];
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
[self setThings:@[@{@"name": @"Actual Thing"}]];
}
「デフォルトのもの」だけが表示されます。things
アプリケーションの起動直後にプロパティに新しい値を設定していますが、その配列は表示されません。