システムワイドショートカットを使用して開始できるステータスメニューアプリがあります。アプリがアクティブになると、現在実行中のアプリケーションで選択されたテキストを何とか取得できたらすばらしいことになります。ココアのアクティブアプリケーションで現在選択されているテキストを取得
たとえば、テキストエディタに何かを入力してテキストを選択し、グローバルショートカットをクリックすると、自分のアプリケーションが表示され、テキストエディタから選択したテキストを知りたいと思います。私は今のところ、以下の(How to get global screen coordinates of currently selected text via Accessibility APIs.から採用コード)である持っているもの
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やメールなどのアプリで動作しないということです...
おかげ
この問題はまだ解決しましたか? –
いいえ...しかし、私は最後にそれを必要としませんでした...しかし、それはApp Storeで保存され、信頼できる方法で動作する方法を知ることに興味があるでしょう... – Georg
同じように...また見たいと思いますなし - Appstore保存方法... –