でここで私は、データとビューベースNSTableViewを投入するために使用しているコードの一部です:ロードNSNib注文トップレベルのオブジェクト順不同
- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
MyCustomCellView *view = (MyCustomCellView *)[tableView makeViewWithIdentifier:@"MyCustomCellView" owner:self];
if (!view) {
NSNib *cellNib = [[NSNib alloc] initWithNibNamed:@"MyCustomCellView" bundle:[NSBundle mainBundle]];
NSArray *array = nil;
if ([cellNib instantiateNibWithOwner:self topLevelObjects:&array]) {
DLog(@"%@", array);
view = [array objectAtIndex:0];
[view setIdentifier:@"MyCustomCellView"];
}
[cellNib release];
}
MyObject *object = [_objects objectAtIndex:row];
[[view titleTextField] setStringValue:object.title];
return view;
}
DLog
文のプリントアレイを二つの連続デリゲートのために、以下のよう呼び出す:これは2行分の出力が外に
(
"<MyCustomCellView: 0x7fb2abe81f70>",
"<NSApplication: 0x7fb2ab80cbf0>"
)
(
"<NSApplication: 0x7fb2ab80cbf0>",
"<MyCustomCellView: 0x7fb2abb2c760>"
)
で数百ので、私ランダムにどちらかの私の見解は、正しく表示またはview
オブジェクトに対してsetIdentifier:
を呼び出している間、私はunrecognized selector
エラーをゲットview
がobjectAtIndex:0
の場合、実際にはロードされたペン先のトップレベルオブジェクトNSApplication
のインスタンスです。
これはnibローディングメカニズムのバグですか、このコードで何か問題がありますか?
@Monolo? – Eimantas
なぜこのようなペン先をロードしようとしていますか?なぜ 'NSViewController'を使わないのですか?さらに良い点は、テーブルコントローラがあるペン先にセルビューを追加し、それにアクセスするためにアウトレットを使用するだけです。 –
これはバグか機能かに関するニュースはありますか? – hanno