3
我的Cocoa应用程序支持将文件拖放到Dock图标上,但是根据是否按住修饰键(Command,Option等) )。如何判断一个修饰键是否在拖放期间停靠Dock
我试着检查modifierFlags
的currentEvent
,但它们是相同的,无论是否按住修饰符,或不是(我正在使用Option键进行测试)。
代码:
// Code is inside my AppDelegate
- (void)application:(NSApplication *)theApplication openFiles:(NSArray *)files {
BOOL optDown = (([[NSApp currentEvent] modifierFlags] & NSAlternateKeyMask)
== NSAlternateKeyMask);
NSLog(@"flags: %u, down? %@", [[NSApp currentEvent] modifierFlags],
optDown ? @"YES" : @"NO");
}
输出(丢弃与Option键一个文件下来,再不行):
flags: 1088, down? NO
flags: 1088, down? NO
预计
flags: <not sure>, down? YES
flags: <different>, down? NO
谢谢,'[NSEvent modifierFlags]'完美地完成了这个技巧(我需要10.6)。 – Dov 2011-05-13 16:21:32