這裏有一段代碼,我使用填充頂級對象基於視圖的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
語句打印陣列如下連續兩個代表電話:
(
"<MyCustomCellView: 0x7fb2abe81f70>",
"<NSApplication: 0x7fb2ab80cbf0>"
)
(
"<NSApplication: 0x7fb2ab80cbf0>",
"<MyCustomCellView: 0x7fb2abb2c760>"
)
這是隻輸出了兩排出來的幾百所以我隨機要麼得到我的觀點正確顯示,或我得到unrecognized selector
錯誤而view
對象調用setIdentifier:
當view
爲objectAtIndex:0
實際上是NSApplication
來自加載的筆尖的頂級對象的實例。
這是一個在筆尖加載機制中的錯誤,或者我在做這個代碼有問題嗎?
@Monolo哪些類對你感興趣? – Eimantas 2012-02-18 13:58:31
你爲什麼要加載這樣的筆尖?爲什麼不使用'NSViewController'?更好的是,只要將單元格視圖添加到表格控制器所在的任何筆尖中,並使用插座來訪問它。 – 2012-02-19 02:22:12
有關這是一個錯誤還是一個功能的任何消息? – hanno 2013-01-23 19:07:09