我已经子类化NSTableCellView了一些自定义绘图.当包含NSOutlineView的突出显示样式设置为" 无"时,我的视图将接收mouseDown事件.
当我将NSOutlineView高亮样式更改为Regular时,我的视图不再接收其mouseDown事件.
如何在将大纲视图的高亮样式保持为常规的同时将mouseDown事件传递给我的视图?
Jay*_*Jay 10
显然NSTableView覆盖-hitTest:以实现行选择/拖动/等.功能 - 这可以解释为什么当突出显示样式为无时你没有问题.
根据Apple Docs:
指定子视图应如何响应事件
[...]如果创建表视图子类,则可以覆盖validateProposedFirstResponder:forEvent:以指定哪些视图可以成为第一个响应者.这样,您就会收到鼠标事件.
或者可选..如果事件处理对您的子类至关重要:为什么不创建NSControl子类?
根据相同的文档,对库存表视图类中已实现的控件进行了特殊处理.