Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 如何在NSTableCellView子类中接收鼠标单击?_Cocoa_Nstableview - Fatal编程技术网

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

Cocoa 如何在NSTableCellView子类中接收鼠标单击?,cocoa,nstableview,Cocoa,Nstableview,我已将NSTableCellView子类化,以进行一些自定义绘图。当包含NSOutlineView的高亮显示样式设置为None时,我的视图将接收鼠标向下事件。 当我将NSOutlineView的突出显示样式更改为常规时,我的视图不再接收其鼠标向下事件 如何将鼠标向下事件传递到视图,同时保持大纲视图的高亮显示样式为常规?显然NSTableView覆盖-hitTest:以实现行选择/拖动/等功能-这将解释为什么高亮显示样式为无 根据: 指定子视图应如何响应事件 […]如果创建表视图子类,则可以重写v

我已将
NSTableCellView
子类化,以进行一些自定义绘图。当包含
NSOutlineView
的高亮显示样式设置为None时,我的视图将接收鼠标向下事件。
当我将
NSOutlineView
的突出显示样式更改为常规时,我的视图不再接收其鼠标向下事件


如何将鼠标向下事件传递到视图,同时保持大纲视图的高亮显示样式为常规?

显然
NSTableView
覆盖
-hitTest:
以实现行选择/拖动/等功能-这将解释为什么高亮显示样式为

根据:

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

[…]如果创建表视图子类,则可以重写validateProposedFirstResponder:forEvent:以指定哪些视图可以成为第一响应程序。这样,您将收到鼠标事件

或者选择。。如果事件处理对您的子类至关重要:为什么不创建一个
NSControl
子类?

根据相同的文档,stock table view类中已经实现的控件有特殊处理。

NSTableCellView中的任何子视图,或者您是否在注意直接指向该视图的单击?仅此而已。在我的outline视图子类中,当responder是我的NSTableCellView子类时,我重写validateProposedFirstResponder:forEvent:以返回YES。非常感谢你。