【发布时间】:2026-01-21 13:50:01
【问题描述】:
我有一个 NSTableView,它在每一行中显示一些图像和一个文本。我为 NSTableView 启用了多项选择。我为 TableView 启用了 Drag&Drop 来排序或导出图像。 现在发生的情况是,当我选择多行并将它们拖到 TableView 上时,整行变为蓝色并保持蓝色(选中)。看不到文字和图片。 在 XCode 中,我收到以下消息:
调用 -[NSTableRowView 布局] 后布局仍然需要更新。 NSTableRowView 或其超类之一可能在不调用 super 的情况下覆盖了 -layout。或者,某些东西可能在更新过程中弄脏了布局。两者都是 Cocoa Autolayout 中的编程错误。如果某些 Cocoa 之前的 Autolayout 类有一个称为 layout 的方法,则很可能会出现前者,但它应该被修复。
问题只存在于多选。启用单个选择时,它工作正常。
这里有三张图来说明问题:
图2:拖过去时变成蓝色;覆盖其他布局组件
http://ekiwi.de/temp/*/original2.png
图 3:拖动后仍为蓝色
http://ekiwi.de/temp/*/original3.png
到目前为止,我通过谷歌搜索两天没有找到任何解决方案或提示。也许这里有人有提示?
【问题讨论】:
-
你在这方面有什么收获吗?我对 NSOutlineView 有类似的问题。就我而言,我可以通过将突出显示样式更改为源列表来解决此问题。我还在一个非常简单的测试项目中重新创建了它,所以我怀疑这是一个 Apple 错误并已提交 Radar。
-
我在自己的应用程序中也遇到过这个错误,它使用基于视图的 NSOutlineView。我可以添加的唯一额外信息是,至少对于我的应用程序,这个错误只发生在优胜美地,而不是小牛队。 Gavin,如果你的雷达上还有那个测试项目,你介意在某个地方发布一个副本吗?
-
有什么解决办法吗?
-
这可能是相关的:*.com/questions/30621573/…
标签: xcode cocoa selection nstableview multiple-select