Получить выбранный текст в активном приложении в Какао

У меня есть приложение в статус-меню, которое можно запустить с помощью системного ярлыка. Когда приложение станет активным, было бы здорово, если бы я мог каким-то образом получить текст, выделенный в текущем запущенном приложении.

Так, например, я набираю что-то в своем текстовом редакторе, выбираю текст, нажимаю на мой глобальный ярлык, появляется мое приложение, и теперь мне бы очень хотелось узнать выбранный текст из текстового редактора.

Что у меня до сих пор является следующее (принят код изКак получить глобальные экранные координаты выделенного в данный момент текста через API специальных возможностей.)

AXUIElementRef systemWideElement = AXUIElementCreateSystemWide();
AXUIElementRef focussedElement = NULL;
AXError error = AXUIElementCopyAttributeValue(systemWideElement, kAXFocusedUIElementAttribute, (CFTypeRef *)&focussedElement);
if (error != kAXErrorSuccess) {
    NSLog(@"Could not get focussed element");
} else {
    AXValueRef selectedTextValue = NULL;
    AXError getSelectedTextError = AXUIElementCopyAttributeValue(focussedElement, kAXSelectedTextAttribute, (CFTypeRef *)&selectedTextValue);
    if (getSelectedTextError == kAXErrorSuccess) {

        selectedText = (__bridge NSString *)(selectedTextValue);
        NSLog(@"%@", selectedText);
    } else {
        NSLog(@"Could not get selected text");
    }
}
if (focussedElement != NULL) CFRelease(focussedElement);
CFRelease(systemWideElement);

Проблема в том, что он не работает с приложениями, такими как Safari и Mail ...

Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос