我正在使用仅一列的基于视图的NSTableView
。
我有以下代码,该代码返回带有两个NSView
的NSTextField
:
- (id) tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
NSView *v = [[NSView alloc] init];
NSTextField *t1 = [[NSTextField alloc] init];
[t1 setStringValue:@"test1"];
NSTextField *t2 = [[NSTextField alloc] init];
[t1 setStringValue:@"test2"];
[v addSubview:t1];
[v addSubview:t2];
return v;
}
即使执行了此代码,似乎也没有任何反应。我没有使用列标识符,我只想将自定义视图返回为一行。
结果如下:
我究竟做错了什么?
该视图将非常自定义且很大,因此我不能依靠Apple的“默认”单元格视图。
谢谢!
最佳答案
基于视图的视图与基于单元的视图不同。
唯一不同的是将“ id”返回值替换为“ NSView”。
更改此:
- (id)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item
对此:
- (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item
假设您正在运行10.7,实际上您将要返回NSView。
关于objective-c - 自定义NSView在NSTableView的列内,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30026346/