我有一个包含拆分视图的窗口。其中一个“分裂”包含一个大纲视图。我有一个窗口控制器(窗口的XIB的文件所有者)。窗口控制器是大纲视图的委托和数据源。
当我在窗口控制器中调用-(void)mouseDown:(NSEvent *)e
方法时,只有工具栏响应方法 - 大纲视图不响应。
如何获取鼠标事件,例如大纲视图的mouseDown?
答案 0 :(得分:1)
获取大纲视图的鼠标事件:
实施鼠标事件方法
在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*/
}