2009-10-26 15 views
27

पर पहुंच-योग्यता विशेषताएं सेट करें मेरे पास इंटरफ़ेस बिल्डर में कई UIBarButtonItem ऑब्जेक्ट्स हैं, और मुझे इन बटनों के लिए एक्सेसिबिलिटी लेबल या संकेत सेट करने के लिए कोई विकल्प नहीं मिल रहा है।UIBarButtonItem

मैं इन विशेषताओं को कैसे सेट कर सकता हूं?

+0

वहाँ XCode 5 में एक स्टोरीबोर्ड पर ऐसा करने का कोई तरीका है? – fatuhoku

उत्तर

-5

UIAccessibility पर ऐप्पल के दस्तावेज़ देखें।

+0

हां, मैंने पहले से ही दस्तावेज़ पढ़े हैं। मैं उम्मीद कर रहा था कि आईबी में या किसी अन्य सुरुचिपूर्ण तरीके से ऐसा करने का कोई तरीका था। मैंने अपना क्लज समाधान पोस्ट किया लेकिन अभी भी एक क्लीनर दृष्टिकोण के लिए खुला हूं। –

+0

क्षमा करें, यह क्षमता आईबी में नहीं जोड़ा गया है (अभी तक?)। मुझे लगता है कि आप शायद सबसे अच्छा है कि आप अभी के लिए क्या करने जा रहे हैं। –

15

ठीक है, ऐसा लगता है कि इंटरफेस बिल्डर में ऐसा करने का कोई तरीका नहीं है, भले ही आप आईबी का उपयोग करके अन्य यूआई तत्वों पर अभिगम्यता विशेषताओं को सेट कर सकें। तो मैं अपने उपकरण पट्टी पर एक टैग सेट और फिर मेरी viewWillAppear विधि के लिए इस कोड कहा:

UIToolbar *bottombar = (UIToolbar*)[self viewWithTag:kBottomToolbar]; 

UIView *view = (UIView*)[bottombar.items objectAtIndex:0]; 
[view setAccessibilityLabel:NSLocalizedString(@"Add Bookmark", @"")]; 
[view setAccessibilityHint:NSLocalizedString(@"Add Bookmark", @"")]; 

और प्रत्येक बटन आइटम के लिए इतने पर ...

नहीं

सबसे सुंदर है, लेकिन यह काम करता है।

+2

आईओएस 5.0 के रूप में आप 'UIBarButtonItem' पर सीधे' accessibilityLabel' प्रॉपर्टी सेट कर सकते हैं। – rmaddy

1

मैन्युअल रूप से एक्सेसबैक लेबल सेट करने का प्रयास करने से UIBarButtonItem छवियों के साथ मेरे लिए काम नहीं किया गया। हालांकि, अगर मैं मैन्युअल रूप से शीर्षक सेट करता हूं तो लेबल काम करेगा। लेकिन यह छवि के नीचे शीर्षक प्रदर्शित करता है।

मैंने UIButton बनाने और UIBarButtonItem के लिए कस्टम दृश्य के रूप में इसका उपयोग समाप्त कर दिया। UIBarButtonItem निष्पादित करता है कि छवि मास्किंग एकमात्र नुकसान है। जोड़ा गया बोनस: आईबी में सुलभता सुलभ।

3

मैं ऊपर कोड एक अतिरिक्त लाइन के साथ UIBarButtonItems साथ काम मिल गया:

[दृश्य setIsAccessibilityElement: हाँ];

+0

इस मुद्दे को हल किया। ध्यान रखें कि यदि माता-पिता के दृष्टिकोण में यह सेट भी है, तो उप-दृश्यों को अनदेखा कर दिया जाता है। –

7

मुझे पता है कि यह पुराना है लेकिन मैंने अभी इसकी आवश्यकता में भाग लिया है। iOS 5.0 के रूप में, आप अब आसानी से एक UIBarButtonItem की पहुंच लेबल करके सेट कर सकते हैं:

UIBarButtonItem *btn = [[UIBarButtonItem alloc] init...; 
btn.accessibilityLabel = @"Label"; 

कोई और अधिक हैक्स।

26

आप "उपयोगकर्ता परिभाषित क्रम गुण" का उपयोग कर सकते हैं और वहाँ अपनी पहुंच-योग्यता जानकारी निर्दिष्ट करें: Runtime attributes

+0

यह एक आसान तरीका है। – mishimay

+1

त्वरित सुधार, संकेत के लिए आपको 'accessibilityHint' का उपयोग करना चाहिए,' keyPath' – Sirens

17

यह वास्तव में पर्याप्त नहीं सिर्फ आईबी में accessibilityLabel उपयोगकर्ता निर्धारित क्रम गुण सेट करने के लिए है। आपको भी असफलता एलीमेंट को भी सत्य पर सेट करना होगा। यह आईबी के भीतर सभी अभिगम्यता की जानकारी रखता है। IB Screenshot

+1

अन्य तत्व से मिलान करने के लिए, प्रकार को स्थानीयकृत स्ट्रिंग होना चाहिए। – OrangeDog

+0

क्या आप इस तरह एक्सेसिबिलिटी लेबल सेट कर सकते हैं? – Andy

3

आप इसके लिए IBInspectable का उपयोग कर सकते हैं ताकि आपको इंटरफ़ेस बिल्डर के साइड पैनल में कुछ आसान विकल्प मिल सकें।

public extension UIBarButtonItem { 
    @IBInspectable var accessibilityEnabled: Bool { 
    get { 
     return isAccessibilityElement 
    } 
    set { 
     isAccessibilityElement = newValue 
    } 
    } 

    @IBInspectable var accessibilityLabelText: String? { 
    get { 
     return accessibilityLabel 
    } 
    set { 
     accessibilityLabel = newValue 
    } 
    } 
} 

UIBarButton Accessibility options in Interface Builder

https://gist.github.com/KaneCheshire/dcce5246c3399072a5200189bfc53fe2

संबंधित मुद्दे