在可可中模拟Cmd +〜

时间:2010-11-19 10:06:24

标签: cocoa macos

有没有办法在Cocoa中以某种方式模拟 Cmd +〜快捷方式行为(即在应用程序窗口中循环)?

通过执行以下操作,我能够在Carbon中执行此操作:

HICommand cmd;
cmd.attirbutes = kHICommandFromMenu;
cmd.commandID = kHICommandRotateWindowsForward;
::GetIndMenuItemWithCommandID( NULL, cmd.commandID, 1, &(cmd.menu.menuRef), &(cmd.menu.menuItemIndex));
::ProcessHICommand(&cmd);

但是现在我需要在Cocoa中做这个并且找不到方法:) 用Google搜索“NSApplication中的私有方法_cycleWindows”,这似乎完全符合我的需要,但代码

[[NSApplication sharedApplication] _cycleWindows];

不会编译 - “错误的方法签名”。

1 个答案:

答案 0 :(得分:0)

使用_cycleWindows是正确的做法。试试这个:

  

[NSApp sendAction:@selector(_cycleWindows :) to:nil from:nil];

此外,如果您想模拟Cmd + Shift +〜,请执行:

  

[NSApp sendAction:@selector(_cycleWindowsBackwards :) to:nil from:nil];