1

Cocoa バインディングを介して設定された、ビューベースの NSTableView を作成しようとしています。

私の NSArrayController は、次のように、アプリケーション デリゲートjobsのプロパティの配列プロパティを指しています。currentUser

バインディング 1

その配列内の各モデルが次のクラスであると予想しますHSJob

バインディング 2

ただし、テーブル ビューを NSArrayController にバインドすると、arrangedObjects何らかの理由でそのプロパティがクラスに属していると見なされますHSJob( NSArray.

バインディング 3

明らかに、これでは個々のセルの内容を Job オブジェクトのプロパティにリンクできず、テーブル ビューに何も表示できません。

バインディング 4

それで、私はここで何が間違っていますか?

アップデート

実験のために、いくつかの手動の値の更新通知を実装し、すべてを 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アプリケーションの起動直後にプロパティに新しい値を設定していますが、その配列は表示されません。

4

2 に答える 2