Как управлять отменой для служб OSX? - PullRequest
4 голосов
/ 06 февраля 2012

Сервисы запускаются в контексте приложения.Например, одна служба может богато отформатировать текст в области вставки и вставить его в приложение, которое его запрашивало.

Возможно ли, чтобы служба получила ссылку на NSUndoManager своего родителя и изменила свою историю отмен?

1 Ответ

0 голосов
/ 12 января 2013

Сервисы запускаются в контексте приложения, концептуально , но на самом деле они не выполняются в процессе этого приложения.

Ответственность за отмену - это ответственность целевого приложения.Если служба вставляет что-то в приложение, она в конечном итоге отправит сообщение -paste: в цепочку респондента в самом переднем окне целевого приложения.Если «эндогенная» операция вставки в целевом приложении не может быть отменена, я ожидаю, что «экзогенная» операция вставки также будет отменена.Точно так же, если приложение не поддерживает отмену операций вставки, я бы не ожидал, что вставка с использованием службы будет отменена.

Службы изолированы от целевого приложения посредством монтажной панели, как описано здесь .Они не смогут получить NSUndoManager из приложения (или любого другого объекта) - подумайте, что за огромная, зияющая дыра в безопасности!Возможно, можно отправить AppleEvent в приложение из системной службы, но это все.

...