Macos 获取突出显示的文本

Macos 获取突出显示的文本,macos,cocoa,Macos,Cocoa,我正在开发一个应用程序,我需要在我的应用程序之外获取用户当前突出显示的文本,有什么方法可以做到这一点吗 我已经读到我可以注册为服务,但我不想这样做 我正在开发一个应用程序,我需要在我的应用程序之外获取用户当前突出显示的文本,有什么方法可以做到这一点吗 我已经读到我可以注册为服务,但我不想这样做 你真的应该。这是正确的方法 我不想强迫用户复制,我只想让他突出显示文本 (或者她。) 服务就是这样工作的:选择一些东西(通常是文本),然后调用服务 …我想用快捷键无法获取突出显示的文本 你也可以这样做 您

我正在开发一个应用程序,我需要在我的应用程序之外获取用户当前突出显示的文本,有什么方法可以做到这一点吗

我已经读到我可以注册为服务,但我不想这样做

我正在开发一个应用程序,我需要在我的应用程序之外获取用户当前突出显示的文本,有什么方法可以做到这一点吗

我已经读到我可以注册为服务,但我不想这样做

你真的应该。这是正确的方法


我不想强迫用户复制,我只想让他突出显示文本

(或者她。)

服务就是这样工作的:选择一些东西(通常是文本),然后调用服务

…我想用快捷键无法获取突出显示的文本

你也可以这样做

您的服务字典应如下所示:

<!--in Info.plist-->
<key>NSServices</key>
<dict>
    <key>NSMenuItem</key>
    <dict>
        <key>default</key>
        <string>ROT-13</string>
    </dict>

    <key>NSKeyEquivalent</key>
    <dict>
        <key>default</key>
        <!-- ⌘ is implicit, and an uppercase letter likewise implies shift -->
        <!-- Thus, this is ⌘-shift-e -->
        <string>E</string>
    </dict>

    <key>NSRequiredContext</key>
    <dict>
        <key>NSServiceCategory</key>
        <string>public.text</string>
    </dict>

    <key>NSSendTypes</key>
    <array>
        <string>NSStringPboardType</string>
    </array>

    ⋮
</dict>

NSS服务
NSMenuItem
违约
ROT-13
NSKeyEquivalent
违约
E
NSRequiredContext
NSServiceCategory
public.text
NSSENDTYPE
NSStringPboardType
⋮

这不是剪贴板的作用吗?(我想你可以做的是让应用程序复制文本然后读出。)我不想强迫用户复制,我只想让他突出显示文本。我的意思是通过编程让应用程序复制文本。使用AppleScript相当容易,因此应该可以在ObjC中进行复制,但我找不到
AESendEvent()
的文档在哪里。(我看到的函数就是这么做的。)@millimoose,它将替换剪贴板的内容,而剪贴板是用户要控制的。您可能会导致重要数据永久丢失。服务是一种方式,但是OP不想因为无法解释的原因而使用它。为什么你不想做一个服务呢?