gpt4 book ai didi

cocoa - 摆脱 NSCell 上的焦点矩形。仅在右键单击时显示

转载 作者:行者123 更新时间:2023-12-03 17:45:50 27 4
gpt4 key购买 nike

我有一个 NSCell 子类,我可以在其中进行各种自定义绘图。唯一一次事情似乎完全超出我的控制范围是右键单击单元格以显示关联的上下文菜单时。在显示它的上下文菜单时,表格(或单元格 - 不确定到底是哪个在执行此操作)绘制一个焦点矩形。我想摆脱这个,或者至少找到一种方法来绘制我自己的版本,更适合我的界面。

我尝试了大约 15 种不同的方法,它们似乎可以让我控制这个焦点矩形绘制本身(各种第一响应者方法、各种绘制方法、各种突出显示颜色方法等),但我还没有找到任何可以改变它的东西。

问题截图:http://twitpic.com/3zx2t

我几乎很恼火,想对 AppKit 进行类转储,并尝试找到它用来绘制这个烦人的焦点矩形的任何私有(private)方法。我所做的任何其他事情都不会对其产生任何影响。这里的任何帮助确实可以让我保持理智,也可以避免 future 的麻烦。

非常感谢!

最佳答案

在不完全覆盖表格 View 的 -drawRect: 的情况下,这是我知道摆脱上下文菜单突出显示矩形的唯一其他方法。

- (void)_drawContextMenuHighlightForIndexes:(NSIndexSet *)rowIndexes clipRect:(NSRect)rect {
return;
}

这是至少在 Leopard 中使用的方法,用于在将由上下文菜单激活的单元格周围绘制突出显示。不幸的是,它是由 NSTableView-drawRect: 方法直接调用的,据我所知,没有其他方法可以表明您对绘制这些突出显示不感兴趣。

当然,这是私有(private) API,它可能在 Snow Leopard 或其他版本中停止工作。但最坏的情况是,在新版本的程序中,上下文菜单突出显示可能会在某个地方再次启动,或者使用此方法的某些其他功能稍后可能无法工作。 您已被警告。

关于cocoa - 摆脱 NSCell 上的焦点矩形。仅在右键单击时显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/800448/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com