gpt4 book ai didi

objective-c - NSOutlineView 改变披露图像

转载 作者:太空狗 更新时间:2023-10-30 04:00:39 25 4
gpt4 key购买 nike

我的大纲 View ,我正在添加自定义单元格,要绘制自定义单元格,我指的是示例代码,出现在 Cocoa 文档中

http://www.martinkahr.com/2007/05/04/nscell-image-and-text-sample/

我想用我的自定义图像更改单元格的披露图像,我尝试了以下操作

- (void)outlineView:(NSOutlineView *)outlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item 
{
if([item isKindOfClass:[NSValue class]])
{
MyData *pDt = (MyData *)[item pointerValue];
if(pDt->isGroupElement())
{
[cell setImage:pGroupImage];
}
}
}

但这也行不通,有没有其他方法可以更改披露图像,另外,我如何在 willDisplayCell 中找出 Item 是展开还是折叠,以便我可以相应地设置图像,

这只是更改披露图像的地方吗?

最佳答案

在我自己研究了这个问题并尝试了这里的一些答案之后,我发现提到的其他方法也行得通,但需要您执行更多的手动干预以避免屏幕伪影和其他奇怪的行为。

我找到的最简单的解决方案如下,在大多数情况下都应该有效。

此解决方案的额外好处是系统可以自动处理许多其他情况,例如柱移动等,而无需您的参与。

- (void)outlineView:(NSOutlineView *)outlineView willDisplayOutlineCell:(id)cell
forTableColumn:(NSTableColumn *)tableColumn
item:(id)item
{
[cell setImage:[NSImage imageNamed: @"Navigation right 16x16 vWhite_tx"]];
[cell setAlternateImage:[NSImage imageNamed: @"Navigation down 16x16 vWhite_tx"]];
}

在您的情况下,您将使用类检测逻辑将其包装起来,并为您的情况适当设置细胞图像。

关于objective-c - NSOutlineView 改变披露图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5038398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com