gpt4 book ai didi

macos - 从 Mac 中的 Pages 应用程序获取当前光标位置的文本

转载 作者:行者123 更新时间:2023-12-03 17:01:03 24 4
gpt4 key购买 nike

是否可以从当前光标位置获取 Pages 应用程序的文本?我的要求是,当用户在“页面”中输入内容时,我必须显示他们正在输入的单词的建议。

所以我想从“Pages”应用程序中找出当前光标位置附近的当前或最后一个单词。是使用 AppleScript 还是辅助功能?未选择文本。我也不是在寻找“服务”。对于“Pages”以外的应用程序,我使用了 Accessibility 和 appleScript。但对于页面我找不到任何方法。

我也尝试过下面的AppleScript,但由于某种原因它在“脚本编辑器”中工作得很好,但是当我在代码中使用它时,它会进入无限循环。

tell application "Pages"
activate
end tell
tell application "System Events"
tell application "System Events"
key code 123 using {shift down, command down} -- shift-command-left
end tell
tell process "Pages"
keystroke "c" using {command down}
delay 1
tell application "System Events"
key code 124 -- shift-command-left
end tell
set myData to (the clipboard) as text
return myData
end tell
end tell

如果我在我的应用程序中运行此 AppleScript,它只会卡住我的 Mac,我必须强制退出 Mac 才能停止它。

最佳答案

这对我使用最新版本的 macOS Mojave 和 Pages 有效

property theApp : "Pages" -- change value to name of any other application (TextEdit)

tell application theApp to activate
delay 3
tell application "System Events"
tell application process theApp
-- Move the insertion point to the beginning of the previous word.
key code 123 using {option down} -- left arrow key while holding option down
delay 0.2
-- Move the insertion point to the end of the next word. (selects the word)
key code 124 using {shift down, option down} -- right arrow key while holding option and shift down
delay 0.2
keystroke "c" using {command down} -- copies selected wprd
delay 0.2
-- Next 2 key code commands attempt to restore cursor location
key code 124 using {option down} -- right arrow key while holding option down
delay 0.2
key code 123 using {option down} -- left arrow key while holding option down
tell current application to set myData to (the clipboard) as text
delay 4
return myData
end tell
end tell

关于macos - 从 Mac 中的 Pages 应用程序获取当前光标位置的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53927871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com