【发布时间】:2012-02-06 17:22:51
【问题描述】:
服务在应用程序的上下文中触发。例如,一项服务可能会丰富地格式化粘贴板上的文本并将其粘贴到请求它的应用程序上。
服务是否可以引用其父级的NSUndoManager 并修改其撤消历史记录?
【问题讨论】:
服务在应用程序的上下文中触发。例如,一项服务可能会丰富地格式化粘贴板上的文本并将其粘贴到请求它的应用程序上。
服务是否可以引用其父级的NSUndoManager 并修改其撤消历史记录?
【问题讨论】:
服务是在应用程序的上下文中触发的,概念上,但它们实际上并没有在该应用程序的进程中执行。
撤消能力是目标应用程序的责任。如果服务将某些内容粘贴到应用程序中,它最终会向目标应用程序最前面窗口的响应者链发送-paste: 消息。如果目标应用程序中的“内生”粘贴操作是可撤消的,我希望“外生”粘贴操作也可以撤消。同样,如果应用不支持对粘贴操作撤消,那么我不希望服务来源的粘贴是可撤消的。
服务通过粘贴板与目标应用程序隔离,如here 所述。他们将无法从应用程序(或任何其他对象)中获取 NSUndoManager ——想想那将是一个多么巨大的、巨大的安全漏洞!可能可以从系统服务向应用程序发送 AppleEvent,但仅此而已。
【讨论】: