KeyDown事件和拖拽

时间:2010-09-04 13:23:34

标签: objective-c cocoa

当用户在Dock中的应用程序图标上删除文件时,我可以捕获keyDown事件吗?

例如,如果用户在应用程序图标上删除了一些文件,那就是“method_one”。如果用户在应用程序图标上删除一些文件并按住选项键,则使用“method_two”处理。

此应用程序中的所有“UI”都只是一个停靠图标。没有窗户,面板等 感谢

1 个答案:

答案 0 :(得分:1)

您可以使用的一种方法是在应用程序启动时轮询键状态。如果没有先接收事件,NSEvent不提供这样做的方法,但您可以使用CGEvent。正如所讨论的here,您可以创建一个新事件并轮询其修改键。代码段如下所示:

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