如何在NSOutlineView中重新加载自定义NSTableRowView?

新西兰JM

当行扩展/折叠时,我试图修改在NSOutlineView中使用的自定义NSTableRowView的外观。我的NSOutlineViewDelegate包括:

- (NSTableRowView *)outlineView:(NSOutlineView *)outlineView rowViewForItem:(id)item
{
    ...
    return rowView;
}

- (void)itemDidExpand:(NSNotification *)notification
{
    NSDictionary *userInfo = [notification userInfo];
    id item = [userInfo objectForKey:@"NSObject"];
    NSOutlineView *outlineView = [notification object];
    [outlineView reloadItem:item];
}

不幸的是,这不会重新加载自定义行视图。

重新加载整个NSOutlineView的数据:

- (void)itemDidExpand:(NSNotification *)notification
{
    [outlineView reloadData];
}

但是,如果有大量数据,这可能很耗时,并且经常导致旋转的沙滩球。

是否可以仅针对单个顶级项目重新加载自定义行视图?

只是一个编码员

请尝试以下方法:

-(void)outlineView:(NSOutlineView *)outlineView didAddRowView:(NSTableRowView *)rowView forRow:(NSInteger)row {
    aColor = [NSColor colorWithCalibratedRed:(r/255.0f) green:(g/255.0f) blue:(b/255.0f) alpha:1.0];
    [view setBackgroundColor:aColor];
}

您可以进一步前进以获取行对象,然后确定特定行要使用的颜色。

-编辑-

如果要更改父单元格视图以显示其已扩展,则对NSOutlineview实施了错误的方法。实现如下所示的方法:

-(void)outlineViewItemWillExpand:(NSNotification *)notification {
    id theObject = [[notification userInfo] objectForKey:@"NSObject"];

    NSInteger row = [theOutlineView rowForItem:theObject];
    NSTableRowView *theRowView = [theOutlineView rowViewAtRow:row makeIfNecessary:NO];

    int r = 110;
    int g = 110;
    int b = 110;

    NSColor *aColor = [NSColor colorWithCalibratedRed:(r/255.0f) green:(g/255.0f) blue:(b/255.0f) alpha:1.0];
    [theRowView setBackgroundColor:aColor];
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在MathJax中定义自定义宏

来自分类Dev

如何在NSOutlineView中重新加载自定义NSTableRowView?

来自分类Dev

如何在PHP数组中定义自定义键?

来自分类Dev

如何添加自定义模块以在AlloyUI中全局加载?

来自分类Dev

如何动态地在自定义程序包中重新加载模块?

来自分类Dev

如何在Firemonkey中加载自定义光标?

来自分类Dev

如何在imagestring()中加载我的自定义字体?

来自分类Dev

NSTableRowView / NSTableCellView如何为所选行设置自定义颜色?

来自分类Dev

PSR-4自动加载如何在自定义库的composer中工作?

来自分类Dev

如何在Django中加载自定义字段

来自分类Dev

如何在Qt中自定义加载屏幕?

来自分类Dev

如何在woocommerce结帐表单字段中重新排列/自定义html

来自分类Dev

如何在Swift 3中加载自定义捆绑包

来自分类Dev

如何在Dymola中定义记录的自定义参数?

来自分类Dev

如何在Hive中重新加载更新的自定义UDF函数?

来自分类Dev

如何在cljs重新架构中创建自定义“ getter”查询?

来自分类Dev

如何在自定义DataGenerator中实现重新缩放?

来自分类Dev

如何在Angular中创建自定义加载屏幕

来自分类Dev

如何在React中加载自定义脚本?

来自分类Dev

如何在Opencart中加载自定义模型

来自分类Dev

如何在目标C中自定义NSOutlineView?

来自分类Dev

如何在Wordpress Admin中创建自定义页面,其中无需加载默认内容

来自分类Dev

如何在WebView Android中使用“重新加载”按钮添加自定义错误消息?

来自分类Dev

如何在滚动视图中重新加载自定义视图?

来自分类Dev

如何在Qt中自定义加载屏幕?

来自分类Dev

如何在 angular 2+ 中制作自定义加载按钮组件?

来自分类Dev

如何在 CassandraDataAutoConfiguration 之前加载自定义 Spring 配置

来自分类Dev

如何在运行时重新加载自定义属性?ASP.NET 核心 MVC

来自分类Dev

如何在 Wordpress 中为自定义帖子类型加载自定义样式表?

Related 相关文章

  1. 1

    如何在MathJax中定义自定义宏

  2. 2

    如何在NSOutlineView中重新加载自定义NSTableRowView?

  3. 3

    如何在PHP数组中定义自定义键?

  4. 4

    如何添加自定义模块以在AlloyUI中全局加载?

  5. 5

    如何动态地在自定义程序包中重新加载模块?

  6. 6

    如何在Firemonkey中加载自定义光标?

  7. 7

    如何在imagestring()中加载我的自定义字体?

  8. 8

    NSTableRowView / NSTableCellView如何为所选行设置自定义颜色?

  9. 9

    PSR-4自动加载如何在自定义库的composer中工作?

  10. 10

    如何在Django中加载自定义字段

  11. 11

    如何在Qt中自定义加载屏幕?

  12. 12

    如何在woocommerce结帐表单字段中重新排列/自定义html

  13. 13

    如何在Swift 3中加载自定义捆绑包

  14. 14

    如何在Dymola中定义记录的自定义参数?

  15. 15

    如何在Hive中重新加载更新的自定义UDF函数?

  16. 16

    如何在cljs重新架构中创建自定义“ getter”查询?

  17. 17

    如何在自定义DataGenerator中实现重新缩放?

  18. 18

    如何在Angular中创建自定义加载屏幕

  19. 19

    如何在React中加载自定义脚本?

  20. 20

    如何在Opencart中加载自定义模型

  21. 21

    如何在目标C中自定义NSOutlineView?

  22. 22

    如何在Wordpress Admin中创建自定义页面,其中无需加载默认内容

  23. 23

    如何在WebView Android中使用“重新加载”按钮添加自定义错误消息?

  24. 24

    如何在滚动视图中重新加载自定义视图?

  25. 25

    如何在Qt中自定义加载屏幕?

  26. 26

    如何在 angular 2+ 中制作自定义加载按钮组件?

  27. 27

    如何在 CassandraDataAutoConfiguration 之前加载自定义 Spring 配置

  28. 28

    如何在运行时重新加载自定义属性?ASP.NET 核心 MVC

  29. 29

    如何在 Wordpress 中为自定义帖子类型加载自定义样式表?

热门标签

归档