2010-09-04 96 views
0

我可以捕获keyDown事件时,用户将文件放在坞中的应用程序图标上?KeyDown事件和drag'n'drop

例如,如果用户在应用程序图标上放置了一些文件,那么就是使用“method_one”处理。如果用户在应用程序图标上放置一些文件并保存选项密钥,那么就是用“method_two”处理。

而在这个应用程序中的所有“用户界面”它只是一个停靠栏图标。没有窗户,面板等 谢谢

回答

1

您可以使用的一种方法是轮询应用程序启动时的关键状态。如果没有首先接收事件,NSEvent不提供这种方法,但您可以使用CGEvent。如讨论here,您可以创建一个新事件并轮询其修饰键。代码片段看起来像这样:

CGEventRef event = CGEventCreate(NULL); 
CGEventFlags mods = CGEventGetFlags(event); 
if(mods & kCGEventFlagMaskShift) 
    NSLog(@"Shift key is being pressed"); 
CFRelease(event); 
+0

正是我所需要的。谢谢! – nukl 2010-09-04 14:20:25

+0

不幸的是代码片段中的第一行 - 'CGEventRef event = CGEventCreate(NULL);'导致内存泄漏。我是否需要'释放'这个'事件'? – nukl 2010-09-04 23:26:54

+0

是的,对不起,我没有扩展该片段以免泄漏。我修改了我的答案以包含CFRelease。 – 2010-09-04 23:36:12