1

私はカスタムに少し問題がありますNSTableCellView

問題: Nib に Table View があり、配列からデータをロードするようにすべてのものが構成されています。今のところ、OKです。問題は、アプリが (メソッドを使用して(id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row) ビューを準備している間、返されたビューは必要に応じて変更されます (戻る前にブレークポイントで監視されます) が、私が見ることができる、誰もが見ることができるビューは変更されません。

問題を見つけるのを手伝ってくれると思います。私の問題を理解するのに役立つものをいくつかあげます。

いくつかの画像

ご覧のとおり、返される前のセルは、ビューも変更されています。

返される前のセル

テーブル ビューに表示されたセル。この場合、カスタム ビューは変更されていません。何も変更していないように見えます。

誰にでも見える細胞

コード

私のカスタムNSTableCellView、ヘッダーしかありません...

@interface playlistQueueItemView : NSTableCellView
@property (weak) IBOutlet NSButton *button;
@property (strong) IBOutlet NSTextField *title;
@property (strong) IBOutlet NSTextField *artist;

- (void)setAllFromInitWithTitle:(NSString*)title artist:(NSString*)artist;
@end

テーブルのビューを作成する方法:

- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
    playlistQueueItemView *cell = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self];
    NSDictionary* song = [[PlaylistQueue getQueue] getSongWithPos:(int) row];

    cell.artist.stringValue = song[@"artista"];
    cell.title.stringValue = song[@"titulo"];

    return cell;
}

もう 1 つ、TableViewPlayground と呼ばれる Apple のサンプル プロジェクトの 1 つに少し従いました。

ありがとう

4

1 に答える 1