我正在使用自定义NSCell编写自定义NSControl。它是一个控件,所以它必须响应鼠标。我创建了一个NSTrackingArea覆盖我的控件,实现了-mouseEntered:
,-mouseExited:
和-mouseMoved:
。 (我将不得不实施-mouseUp/Down:
,但我不知道该做什么,所以现在我还没有重写这些方法。)在这些方法中,我成功地确定了鼠标当前在哪个单元格上。现在我有两个问题:我应该在我的NSCell上调用什么方法
- 这是跟踪鼠标的好方法吗?如果不是,我该怎么做呢?
- 在鼠标点击,鼠标进入细胞,鼠标离开细胞等时,我应该在我的NSCell上调用什么方法?苹果的文档对此并不十分清楚。
因此,基本上:什么时候应该调用我的NSCell上的什么方法让它响应鼠标事件?
编辑:
李自成的文档,我想我应该叫的NSCell的-trackMouse:inRect:ofView:untilMouseUp:
并覆盖-startTrackingAt:inView:
,-continueTracking:at:inView:
和-stopTracking:at:inView:mouseIsUp:
。再次提出两个问题:1)文档给人留下的印象只有在鼠标关闭时才被调用。那是对的吗?那我应该怎么做呢? 2)我应该在哪里/何时致电NSCell的-trackMouse:inRect:ofView:untilMouseUp:
?
看看NSActionCell;它应该给你你想要遵循的模式。 – 2013-03-14 15:19:57
你可以扩展一下吗?我想添加突出显示,所以我需要的不仅仅是基本的目标/行动支持。 @JimPuls – 11684 2013-03-14 15:23:38