添加/插入行时,NSTableView闪存的半透明子视图

时间:2014-04-10 09:16:04

标签: macos cocoa nstableview nsoutlineview

我有一个基于视图的NSOutlineView,其中的行包含alpha值小于1的子视图。

当插入或删除新行时(当用户展开或折叠行时),所有这些子视图都会闪烁,因为它们似乎暂时重新绘制,其alpha值为1。

有谁知道如何阻止这种现象?

1 个答案:

答案 0 :(得分:0)

我一直在看这个问题四个小时,而且一旦我在这里发布问题就会经常发生,我会为自己找出答案。

设置这样的半透明层解决了这个问题:

- (void)setup {

    // This stops the strange flashing effect when collapsing/expanding rows

    self.wantsLayer = YES;
    [self.layer setShouldRasterize:YES];
}

- (instancetype)init
{
    self = [super init];
    if (self) {
        [self setup];
    }
    return self;
}

- (instancetype)initWithCoder:(NSCoder *)coder
{
    self = [super initWithCoder:coder];
    if (self) {
        [self setup];
    }
    return self;
}