Mac桌面上的一个窗口是否可以通过编程方式将键盘快捷方式或键序列发送给另一个窗口?

我希望通过使用应用程序的键盘快捷键功能来控制不提供API的应用程序。

我相当确定这可以在Windows上完成,但是Mac?

谢谢

最佳答案

一种方法是将Applescript嵌入到Objective-C应用程序中。
例如,执行此苹果脚本,将Command + M发送到System Events应用程序:

tell application "System Events" to keystroke "m" using {command down}

您可以将上面的脚本嵌入到Cocoa应用程序中,如下所示:
//AppControler.h
#import <Cocoa/Cocoa.h>

@interface AppController : NSObject {
    NSAppleScript *key;
}
-(IBAction)sendkeys:(id)sender;
@end

//AppControler.m
#import "AppController.h"

@implementation AppController

-(IBAction)sendkeys:(id)sender
{
    NSAppleScript *key = [[NSAppleScript alloc] initWithSource:@"tell application "System Events" to keystroke "m" using {command down}"];
    [start executeAndReturnError:nil];
}

@end

10-04 12:56