如何在NSTableCellView子类中接收鼠标点击?

Mik*_*e T 4 cocoa nstableview

我已经子类化NSTableCellView了一些自定义绘图.当包含NSOutlineView的突出显示样式设置为" 无"时,我的视图将接收mouseDown事件.
当我将NSOutlineView高亮样式更改为Regular时,我的视图不再接收其mouseDown事件.

如何在将大纲视图的高亮样式保持为常规的同时将mouseDown事件传递给我的视图?

Jay*_*Jay 10

显然NSTableView覆盖-hitTest:以实现行选择/拖动/等.功能 - 这可以解释为什么当突出显示样式为时你没有问题.

根据Apple Docs:

指定子视图应如何响应事件

[...]如果创建表视图子类,则可以覆盖validateProposedFirstResponder:forEvent:以指定哪些视图可以成为第一个响应者.这样,您就会收到鼠标事件.

或者可选..如果事件处理对您的子类至关重要:为什么不创建NSControl子类?
根据相同的文档,对库存表视图类中已实现的控件进行了特殊处理.