Bre*_*don 6 macos cocoa objective-c nsoutlineview appkit
我有一个大纲视图,我不想要缩进顶部的几个级别(他们有一个独特的外观反正),但我也想缩进后面的水平.我怎样才能做到这一点?
我已经尝试重写-levelForRow:并-levelForItem:从返回值中减去2,但这没有帮助.我也尝试重写-frameOfOutlineCellAtRow:从帧的宽度中减去2*indentationPerLevel,但这也没有帮助,可能是因为我没有显示透露三角形.有关如何解决此问题的任何想法?
大纲视图绑定到a NSTreeController,这使得难以展平底层数据结构,但我确实有一个大纲视图委托设置.
解决方案是使用frameOfCellAtColumn:row:哪种NSTableView方法.
- (NSRect)frameOfCellAtColumn:(NSInteger)column row:(NSInteger)row;
{
NSRect frame = [super frameOfCellAtColumn:column row:row];
if (column == (NSInteger)[self.tableColumns indexOfObjectIdenticalTo:self.outlineTableColumn]) {
if (this-item-or-row-matches-your-conditions) {
frame.origin.x -= self.indentationPerLevel;
frame.size.width += self.indentationPerLevel;
}
}
return frame;
}
Run Code Online (Sandbox Code Playgroud)
此方法控制基于单元格和基于视图的表视图和大纲视图中的布局.
| 归档时间: |
|
| 查看次数: |
658 次 |
| 最近记录: |