Dan*_*iel 7 xcode cocoa selection multiple-select nstableview
我有一个NSTableView,在每一行显示一些图像和文本.我为NSTableView启用了多个选择.我为TableView启用了Drag&Drop来排序或导出图像.现在,当我选择多行并将它们拖到TableView上时,整个行变为蓝色并保持蓝色(选中).无法看到文字和图片.在XCode中,我收到以下消息:
调用后仍需要更新布局 - [NSTableRowView布局].NSTableRowView或其中一个超类可能在不调用super的情况下覆盖了--layout.或者,在更新它的过程中可能会出现脏的布局.两者都是Cocoa Autolayout中的编程错误.如果一些pre-Cocoa Autolayout类有一个名为layout的方法,那么很可能会出现前者,但应该修复它.
该问题仅存在于多个选择中.启用单个选择时,它可以正常工作.
这是三张图片来说明问题:
图2:拖动它时会变成蓝色; 覆盖其他布局组件
http://ekiwi.de/temp/stackoverflow/original2.png
图3:拖动后它保持完全蓝色
http://ekiwi.de/temp/stackoverflow/original3.png
到目前为止,我没有通过谷歌搜索找到任何解决方案或提示两天.也许在这里有人有提示?
我终于能够通过设置selectionHighlightStyle行视图来覆盖蓝色选择颜色。我的子类中的以下代码NSTableRowView达到了目的:
- (NSTableViewSelectionHighlightStyle)selectionHighlightStyle
{
return NSTableViewSelectionHighlightStyleNone;
}
- (void)drawSelectionInRect:(NSRect)dirtyRect
{
[[NSColor redColor] set];
NSRectFill(dirtyRect);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
595 次 |
| 最近记录: |