“粘贴”文本到外部Mac应用程序第一响应者

问题描述:

是否有任何(App Store安全)方式自动用文本填充另一个应用程序的第一响应者文本字段?例如,使用由NSStatusBar应用程序指定的热键,用户在单独的应用程序中突出显示文本(如TextEdit),并将新文本粘贴到状态栏应用程序根据情景数据生成的TextEdit中。“粘贴”文本到外部Mac应用程序第一响应者

是否有任何方式自动填充文本的另一个应用程序的第一响应文本字段?

是,收银台下面的AppleScript:

tell application "System Events" to keystroke "Hello World" 

使用NSTask从Objective-C的运行:

NSString *theText = @"Hello World"; 
NSString *theSource = [NSString stringWithFormat:@"tell application \"System Events\" to keystroke \"%@\"",theText]; 
NSAppleScript *theScript = [[NSAppleScript alloc] initWithSource:theSource]; 
[theScript executeAndReturnError:nil]; 

注意,脚本需要辅助设备的访问:

系统首选项→通用访问→启用访问辅助设备

使用上述代码的应用程序不会被Apple拒绝。

+0

很好,谢谢! – daltonclay* 2012-07-27 23:50:25

+0

如果没有特定的目标应用程序例外授权,我认为这不再起作用。 – Crutt 2017-01-02 21:00:13