use*_*905 15 macos cocoa objective-c interface-builder
我正在寻找一种在NSTableView中创建iOS部分的方法(如在iTunes 11中 - 附加).
正如您在屏幕截图中看到的,"专辑"是一个部分,"歌曲"是第二部分.任何帮助,将不胜感激.
谢谢!

Tap*_*rms 21
我看到这是一个老问题,但答案是使用基于View的NSTableView然后实现tableView:viewForTableColumn:row:.
这是基于我如何做的代码.它尚未在Xcode中编译.
-(NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
    NSTableCellView *cell = nil;
        // get your row from your array of objects.
        // determine if it's a section heading or not.
    SomeClass *someObject = [self.myObjects objectAtIndex:row];
    if (someObject.isSectionHeading) {
        cell = [tableView makeViewWithIdentifier:@"HeaderCell" owner:self];
        cell.textField.objectValue = someObject.headingName;
    } else {
        cell = [tableView makeViewWithIdentifier:@"DataCell" owner:self];
        cell.textField.objectValue = someObject.rowValue;
    }
    return cell;
}
而且tableView:isGroupRow会在你的章节标题上加上灰色背景
-(BOOL)tableView:(NSTableView *)tableView isGroupRow:(NSInteger)row {
    BOOL isGroup = NO;
    // Choose some way to set isGroup to YES or NO depending on your records.
    return isGroup;
}
确保在Interface Builder中已将NSTableCellViews的标识符设置为"HeaderCell"和"DataCell".或者使用你想要的任何名字.只要它与您的代码匹配.您可以根据需要拥有尽可能多的这些单元格.
如果您创建NSTableCellView的子类,则可以轻松地将自己的文本字段,复选框,图像等添加到视图中并相应地设置它们的值.
| 归档时间: | 
 | 
| 查看次数: | 8059 次 | 
| 最近记录: |