0

NSTableView for Mac OSX10.6および10.7のカスタムセルを作成しようとしています

10.6で私はやっています

- (NSCell *)tableView:(NSTableView *)tableView dataCellForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
    CustomCell *tableCell = [[[CusomCell alloc] init]autorelease];
    return tableCell;
}

しかし、10.7でこれを行うにはどうすればよいですか?

- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
}

Mac OS X 10.7のメソッドは戻りますがNSView、CustomCellは戻りますNSCell

NSTableCellViewを使用できません。これにより、プログラムがMac OSX10.6で動作しなくなります。

私はこのようなことができると思いますが、私はMac OS X 10.6しか持っていないので、これをテストすることはできません

- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
    NSView *view = [[NSView alloc] initWithFrame:NSMakeRect(0, 0, 299, 75)];
    [view addSubview:tableCell.controlView];
    return view;
}

誰かが私がしていることが正しいかどうかを確認できますか?または多分誰かが知っています。この状況でどのように正しいか

4

2 に答える 2

1

Mac OSX10.7ではセルベースのNSTableViewsを引き続き使用できます。10.7で追加された新機能を無視すると、10.6での動作と同じように機能します。テーブルをビューベースにすることは完全にオプションです。したがって、テーブルビューが10.6で正常に機能する場合は、10.7でも正常に機能するはずです。これ-tableView:viewForTableColumn:はまったく正しくなく、機能しません。不要なので取り出してください。

于 2012-04-23T19:12:55.237 に答える
0

- (NSCell *)tableView:(NSTableView *)tableView dataCellForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row10.7で使ってみませんか?それでも動作しますね。

于 2012-04-23T19:13:57.957 に答える