Использование NSPerformService для программного вызова службы не работает должным образом - PullRequest
0 голосов
/ 25 мая 2011
NSPerformService(@"Copy Selected Text", pboard);

- (void)copyText:(NSPasteboard *)pboard userData:(NSString *)userData error:(NSString **)error {
NSString *copiedText = [pboard stringForType:NSStringPboardType];
NSLog('copied text %@', copiedText);
}

CopyText: userData: error: успешно запущен, но скопированный текст пуст, что не должно.Я должен выбрать какой-то текст, прежде чем я вызову NSPerformService.

Если я вызову свой сервис, выбрав меню Сервис, он будет работать правильно.

Я предполагаю, что вызов NSPerformService не записал текст выбора в общую панель управления.

1 Ответ

0 голосов
/ 25 мая 2011

NSPerformService не может получить выделенный текст автоматически. Он предназначен для того, чтобы вы могли использовать сервисы без пользовательского интерфейса (например, в инструменте командной строки). Вы должны специально поместить текст, над которым вы хотите, чтобы служба работала, в монтажный стол, который вы предоставляете в качестве параметра. Конечно, для службы «Копировать выделенный текст» это не имеет никакого смысла ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...