Macos 如何在NSTableView上放置NSButton
1) 按钮后面没有桌子 2) 表格加载 3) 滚动后 如果我在NSTableView上放置一个按钮,滚动后会留下工件。有人知道如何解决这个问题吗 我目前的解决方案是将带有表的部分拆分为2。下部是背景中的禁用按钮Macos 如何在NSTableView上放置NSButton,macos,cocoa,nstableview,Macos,Cocoa,Nstableview,1) 按钮后面没有桌子 2) 表格加载 3) 滚动后 如果我在NSTableView上放置一个按钮,滚动后会留下工件。有人知道如何解决这个问题吗 我目前的解决方案是将带有表的部分拆分为2。下部是背景中的禁用按钮 我遇到了一个类似的问题,并解决了它,请参见。本质上,OSX将绘制表的内容,并让父级滚动视图移动缓存的内容,避免重画。通过子类化父滚动视图,可以强制刷新挂接reflectScrolledClipView:方法的表。然后,整个表格(包括覆盖图)将在每次滚动时重新绘制。尝试NSScrollVi
我遇到了一个类似的问题,并解决了它,请参见。本质上,OSX将绘制表的内容,并让父级滚动视图移动缓存的内容,避免重画。通过子类化父滚动视图,可以强制刷新挂接
reflectScrolledClipView:
方法的表。然后,整个表格(包括覆盖图)将在每次滚动时重新绘制。尝试NSScrollView方法
-(void)添加浮动子视图:(NSView*)轴视图:(nseventgestreaxis)轴
所有表视图通常都应位于滚动视图内 这是因为滚动视图设置为在滚动时复制其内容,并且作为性能优化,仅重新绘制新打开的部分。要关闭该功能,请使用
myTableView.enclosingScrollView.contentView.copiesOnScroll = NO;
尽管这将使滚动使用更多的CPU(您也可以在XIB中执行此操作,请查看“滚动时复制”复选框)
可能更好的方法是切换滚动视图,并将按钮置于图层背面:
myTableView.enclosingScrollView.wantsLayer = YES;
myButtonView.wantsLayer = YES;
(同样,您可以在XIB文件的“层”检查器中进行设置,在该检查器中,您可以单击每个视图旁边的复选框为其指定一个层)现在,滚动视图将仅从其自己的层复制内容(不再包括您的按钮)。此外,现在所有文本视图的合成都将在图形卡中完成。这适用于不透明按钮,但是,如果您将文本放置在其自身图层的透明背景上(例如,如果您有一个带有标题的透明按钮),则会丢失亚像素消除混叠。可能的重复