【发布时间】:2011-08-25 01:52:33
【问题描述】:
我的 Cocoa 应用程序支持将文件拖放到它的 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
【问题讨论】:
标签: cocoa macos drag-and-drop keyboard dock