macos - 当表格滚动时,为什么 NSTextField 会在 NSTableView 上留下痕迹?

标签 macos cocoa nstableview nstextfield

我想在滚动表上放置一个文本标签,但该标签与滚动的绘图冲突。在这里,您可以看到一个测试,其中我故意将标签的一半移出表格并在表格中向上滚动,这导致标签覆盖的部分被拖动到下面,直到退出窗口.

scrolling up breaks label overlay

此外,当我转到表格的另一端并向下滚动时,有时标签似乎被重新绘制,并且它的大部分内容会随着滚动而上升:

scrolling down is bad too

scrolling down is bad too

表格似乎正在重绘其内容,并且不会通知其余 View 对象重绘自身,以防它们被覆盖。我该如何解决这个问题?事实上,这似乎与How to place an NSButton over an NSTableView高度相关。这似乎有同样的问题,但用的是按钮而不是标签。

最佳答案

不要这样做,因为您会损失大量性能并增加能源消耗。

尝试 NSScrollView 方法 - (void)addFloatingSubview:(NSView *)view forAxis:(NSEventGestureAxis)axis

关于macos - 当表格滚动时,为什么 NSTextField 会在 NSTableView 上留下痕迹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22171410/

相关文章:

swift - 在 MacOS 中以编程方式关闭模式对话框

macos - 如何在 Mac 上使用 .NET Core 强制重建

ios - 在 Cocoa Touch 中,数据源可以称为模型吗?

cocoa - 如何在 safari webplugin 项目的 plist 中定义 WebPluginMIMETypesFilename?

swift - 单击后更改 NSTableCellView 中 NSButton 的文本

Cocoa 屏幕保护程序框架错误消息

objective-c - 当我禁用按钮时,有没有办法防止文本变成灰色?

image - WebView 到 TIFF 表示

cocoa - NSTableView的viewForTableColumn :row: called for more rows than expected in Mavericks

objective-c - 以编程方式创建的 NSTableView 不显示