2013-11-14 5 views
12

में सक्रिय एप्लिकेशन में वर्तमान में चयनित टेक्स्ट प्राप्त करें मेरे पास एक स्टेटस-मेन्यू ऐप है जिसे सिस्टम विस्तृत शॉर्टकट का उपयोग करके प्रारंभ किया जा सकता है। जब ऐप सक्रिय हो जाता है, तो यह बहुत अच्छा होगा अगर मैं किसी भी तरह से पाठ को वर्तमान में चल रहे एप्लिकेशन में चुना गया हो।कोको

तो उदाहरण के लिए मैं अपने टेक्स्ट-एडिटर में कुछ टाइप करता हूं, टेक्स्ट का चयन करता हूं, अपना ग्लोबल शॉर्टकट दबाता हूं, मेरा ऐप आता है और अब मुझे टेक्स्ट-एडिटर से चयनित टेक्स्ट जानना अच्छा लगेगा।

क्या मैं अब तक है निम्नलिखित (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); 

समस्या यहाँ है कि यह सफारी और मेल जैसे एप्लिकेशन के साथ काम नहीं करता है ...

धन्यवाद

है
+0

क्या आपने अभी तक इस समस्या का समाधान किया है? –

+0

नहीं ... लेकिन मुझे अंत में इसकी आवश्यकता नहीं थी ... लेकिन अभी भी यह जानना होगा कि यह ऐप-स्टोर सेव और विश्वसनीय तरीके से कैसे काम करेगा ... – Georg

+0

यहां भी देखना होगा ... कोई भी ऐपस्टोर रास्ता बचाने ... –

उत्तर

1

यह तकनीकी रूप से आपके सटीक प्रश्न का समाधान नहीं है क्योंकि उपयोगकर्ता को मेनू मेनू ऐप को ट्रिगर करते समय बस इसे मेनू मेनू से ट्रिगर करना होगा।

आप System Service का उपयोग कर सकते हैं। आप अपने ऐप के लिए एक सेवा बनाते हैं जो वर्तमान में चयनित टेक्स्ट को आपके मेनू बार ऐप में पेस्टबोर्ड के माध्यम से भेजता है।