Vad*_*dim 5 tree cocoa sidebar nsoutlineview outline-view
我想要在Things应用程序中完成与特殊项目相同的行为.我的意思是补充工具栏底部的日志和垃圾项目:
日志和垃圾箱项目位于最底层http://tinyurl.com/lhctza
请建议以任何方式在侧栏树中实现相同的功能.
我觉得特殊的'spacer'树项应该与outlineView:heightOfRowByItem:方法一起使用.
但是,我找不到如何计算所有可见项目的总高度(包括组之间的空间).
我决定通过为组样式中的每个根项添加 8 个像素的高度来硬编码该解决方案。所以,代码如下所示:
- (CGFloat)outlineView:(NSOutlineView *)ov heightOfRowByItem:(id)item;
{
if (![item isSpacer]) return [ov rowHeight];
static const CGFloat ADDITIONAL_SPACE = 8.0f;
NSUInteger numberOfRootGroups = 2;
CGFloat heightOfRows = [ov rowHeight] * ([ov rowForItem:item] + 1)
+ ADDITIONAL_SPACE * numberOfRootGroups;
CGFloat heightOfSidebar = [[ov superview] frame].size.height;
return MAX(0.0f, heightOfSidebar - heightOfRows);
}
感谢大家的支持!
| 归档时间: |
|
| 查看次数: |
637 次 |
| 最近记录: |