gpt4 book ai didi

cocoa - 如何管理 OSX 服务的撤消?

转载 作者:行者123 更新时间:2023-12-03 16:15:53 25 4
gpt4 key购买 nike

服务在应用程序的上下文中触发。例如,一项服务可以在粘贴板上对文本进行丰富的格式化,并将其粘贴到请求它的应用程序上。

服务是否可以获取对其父级的 NSUndoManager 的引用并修改其撤消历史记录?

最佳答案

从概念上讲,服务是在应用程序的上下文中触发的,但它们实际上并不在该应用程序的进程中执行。

撤消能力是目标应用程序的责任。如果服务将某些内容粘贴到应用程序中,它最终会向目标应用程序最前面窗口的响应程序链发送一条 -paste: 消息。如果目标应用程序中的“内源”粘贴操作是可撤消的,我希望“外源”粘贴操作也是可撤消的。同样,如果应用程序不支持粘贴操作的撤消,那么我不希望服务来源的粘贴是可撤消的。

服务通过粘贴板与目标应用程序隔离,如here所述。 。他们将无法从应用程序(或任何其他对象)获取 NSUndoManager —— 想象一下这将是一个多么巨大的安全漏洞!可能可以从系统服务向应用程序发送 AppleEvent,但仅此而已。

关于cocoa - 如何管理 OSX 服务的撤消?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9164271/

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