मेरे पास एक बटन है, जो दबाए जाने पर, "सहायक" विंडो दिखाता है।फोर्स एनएसएसेबिलिटी वॉयसओवर फोकस ओएस एक्स टेक्स्टफील्ड पढ़ने के लिए?
यह विंडो दिखाया गया है, लेकिन orderFrontRegardless
के माध्यम से कीबोर्ड फोकस नहीं दिया गया है।
विंडो में NSTextView
के अंदर सहायक टेक्स्ट है।
दृष्टिहीन उपयोगकर्ताओं के लिए, मैं ओएस एक्स के वॉइसओवर को इस विंडो के टेक्स्ट व्यू को तत्काल पढ़ने के लिए तुरंत दिखाना चाहता हूं। NSTextView
की मेरी उपवर्ग में
NSAccessibilityPostNotification(textView, NSAccessibilityValueChangedNotification);
मैं तो पहुँच विधि ओवरराइड:
मैं योग्यता के प्रयास कर रहा हूँ के माध्यम से पाठ पढ़
- (id)accessibilityAttributeValue:(NSString *)attribute
{
//The notification calls this method for attributes:
//AXRole: returns AXTextArea
//AXSharedCharacterRange: returns range of the text view
return [super accessibilityAttributeValue:attribute];
}
अधिसूचना AXRole
के लिए क्वेरी करने के लिए यह कारण बनता है (NSAccessibilityRoleAttribute
) और AXSharedCharacterRange
(NSAccessibilitySharedCharacterRangeAttribute
)।
चरित्र श्रृंखला टेक्स्ट क्षेत्र की सीमा को सही ढंग से लौटाती है।
हालांकि, किसी भी समय AXValue
(NSAccessibilityValueAttribute
) अनुरोध नहीं किया गया है। यही है कि मुझे वॉयसओवर को टेक्स्टफील्ड पढ़ने के लिए जरूरी होने की उम्मीद है।
NSAccessibilityValueChangedNotification
टेक्स्ट व्यू के NSAccessibilityValueAttribute
का अनुरोध क्यों नहीं कर रहा है? मैं वॉयसओवर को टेक्स्ट एरिया के टेक्स्ट को कैसे पढ़ूं?