如何在鼠标悬停时突出显示IKImageBrowserView的单元格?

ane*_*yzm 5 macos cocoa objective-c

当鼠标悬停在其中一个单元格上时,我想提供一些反馈IKImageBrowserView.

具体来说,我想稍微调整单元格的大小,使其在鼠标悬停时显得略大一些.或者,突出显示背景/边框也没问题.

不幸的是,IKImageBrowserCell它不是一个子类NSCell,而是NSObject我无法在API中找到解决方案.有任何想法吗?

Jos*_*zzi 2

您可以尝试子类化 IKImageBrowserView 并将NSTrackingArea添加到可见矩形。然后,您可以实现 -mouseMoved: 来使用跟踪区域来使用-indexOfItemAtPoint:定位正确的图像单元,然后使用-itemFrameAtIndex:获取其框架。

您可以在新发现的框架上方添加自己的图层(或无边框窗口),并使用标准动画来增长/收缩/动画/发光/抖动/无论这种“作弊”,而不是尝试破坏 IKImageBrowserView 的黑盒图层和绘图。 “ 细胞。让点击“通过”(并隐藏“作弊”单元),以便正常的拖放机制发挥相同的作用。IKImageBrowserView 有自己的 -setForegroundLayer: 方法,允许您添加“覆盖层” - 我想它非常适合此目的。

如果这是我自己的问题,那将是我第一次尝试解决这个问题。