我正在使用仅一列的基于视图的NSTableView
我有以下代码,该代码返回带有两个NSViewNSTextField

- (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/

10-13 08:31