将“粘贴”文本粘贴到外部Mac App First Responder

时间:2012-07-27 20:19:36

标签: macos copy-paste nspasteboard

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

1 个答案:

答案 0 :(得分:2)

  

有没有办法自动填写另一个应用程序的第一个响应者文本字段?

是的,请查看以下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拒绝。