我有一个包含拆分视图的窗口。其中一个“拆分”包含一个大纲视图。我有一个窗口控制器(它是窗口 XIB 的文件所有者)。窗口控制器是大纲视图的委托和数据源。
当我在窗口控制器中调用该-(void)mouseDown:(NSEvent *)e
方法时,只有工具栏响应该方法 - 大纲视图没有。
如何获取大纲视图的鼠标事件,例如 mouseDown?
我有一个包含拆分视图的窗口。其中一个“拆分”包含一个大纲视图。我有一个窗口控制器(它是窗口 XIB 的文件所有者)。窗口控制器是大纲视图的委托和数据源。
当我在窗口控制器中调用该-(void)mouseDown:(NSEvent *)e
方法时,只有工具栏响应该方法 - 大纲视图没有。
如何获取大纲视图的鼠标事件,例如 mouseDown?
获取大纲视图的鼠标事件:
实现鼠标事件方法
在 Xcode > 您的大纲视图的新子类 > 实现 (.m) 文件中输入您的方法,例如
(void)mouseDown:(NSEvent *)theEvent {
/* CODE YOU WANT EXECUTED WHEN MOUSE IS CLICKED */
NSLog(@"Mouse down occurred");
// call this to get the usual behaviour of your outline
// view in addition to your custom code
[super mouseDown:theEvent];
}
知道可以通过使用[NSEvent modifierFlags]
. 这不仅适用于大纲视图,也适用于整个应用程序的视图。例如,在窗口控制器(在问题中提到)中,我可以包含如下代码:
if ([NSEvent modifierFlags] == NSAlternateKeyMask) { // if the option key is being pressed
/*SOME CODE*/
}