0
我可以捕獲keyDown事件時,用戶將文件放在塢中的應用程序圖標上?KeyDown事件和drag'n'drop
例如,如果用戶在應用程序圖標上放置了一些文件,那麼就是使用「method_one」處理。如果用戶在應用程序圖標上放置一些文件並保存選項密鑰,那麼就是用「method_two」處理。
而在這個應用程序中的所有「用戶界面」它只是一個停靠欄圖標。沒有窗戶,面板等 謝謝
我可以捕獲keyDown事件時,用戶將文件放在塢中的應用程序圖標上?KeyDown事件和drag'n'drop
例如,如果用戶在應用程序圖標上放置了一些文件,那麼就是使用「method_one」處理。如果用戶在應用程序圖標上放置一些文件並保存選項密鑰,那麼就是用「method_two」處理。
而在這個應用程序中的所有「用戶界面」它只是一個停靠欄圖標。沒有窗戶,面板等 謝謝
您可以使用的一種方法是輪詢應用程序啓動時的關鍵狀態。如果沒有首先接收事件,NSEvent不提供這種方法,但您可以使用CGEvent。如討論here,您可以創建一個新事件並輪詢其修飾鍵。代碼片段看起來像這樣:
CGEventRef event = CGEventCreate(NULL);
CGEventFlags mods = CGEventGetFlags(event);
if(mods & kCGEventFlagMaskShift)
NSLog(@"Shift key is being pressed");
CFRelease(event);
正是我所需要的。謝謝! – nukl 2010-09-04 14:20:25
不幸的是代碼片段中的第一行 - 'CGEventRef event = CGEventCreate(NULL);'導致內存泄漏。我是否需要'釋放'這個'事件'? – nukl 2010-09-04 23:26:54
是的,對不起,我沒有擴展該片段以免泄漏。我修改了我的答案以包含CFRelease。 – 2010-09-04 23:36:12