2013-03-22 6 views
9

मैं एक ऐप में वॉयस ओवर सपोर्ट सुधारने की कोशिश कर रहा हूं। मेरे पास UISearchBar है। मैंने showBookMarks संपत्ति YES पर सेट की है। समस्या मैं के साथ वॉयस ओवर चालू, वहाँ बुकमार्क आइकन सक्रिय करने के लिए कोई रास्ता नहीं है कि हैUISearchBar के बुकमार्क आइकन को कैसे पहुंचाया जा सकता है?

[searchbar setImage:icon forSearchBarIcon:UISearchBarIconBookmark state:UIControlStateNormal]; 

: और मैं के साथ एक कस्टम छवि निर्धारित किया है। यदि मैं टेक्स्ट दर्ज करता हूं, तो "स्पष्ट" आइकन दिखाई देता है और इसे चुना जा सकता है और अपेक्षित के रूप में सक्रिय किया जा सकता है। लेकिन एक बार टेक्स्ट साफ़ हो जाने पर और मेरे बुकमार्क आइकन दिखाई देते हैं, तो इसे चुना नहीं जा सकता है। कोई फर्क नहीं पड़ता कि मैं कहां टैप करता हूं, वॉयस ओवर आयताकार हमेशा आइकन सहित समस्त खोज बार को घेरता है।

मैंने आइकन के लिए UIImage पर accessibilityLabel और accessibilityTraits गुणों को सेट करने का प्रयास किया है। मैंने UIImage की isAccessibilityElement संपत्ति YES पर सेट की है। कुछ भी काम नहीं करता है।

क्या किसी को पता है कि UISearchBar में बुकमार्क आइकन बनाने के लिए किन चरणों की आवश्यकता है?

UISearchBar *bar = [[UISearchBar alloc] init]; 
[bar sizeToFit]; 
bar.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
bar.placeholder = @"Search listed items"; 
bar.autocapitalizationType = UITextAutocapitalizationTypeNone; 
bar.autocorrectionType = UITextAutocorrectionTypeNo; 
bar.keyboardType = UIKeyboardTypeDefault; 
bar.showsBookmarkButton = YES; 
bar.text = @""; 

UIImage *icon = [UIImage imageNamed:@"bookmarks.png"]; 
icon.accessibilityLabel = @"Bookmarks"; 
icon.accessibilityTraits = UIAccessibilityTraitButton; 
icon.isAccessibilityElement = YES; 
[bar setImage:icon forSearchBarIcon:UISearchBarIconBookmark state:UIControlStateNormal]; 
[bar setPositionAdjustment:UIOffsetMake(-1, -1) forSearchBarIcon:UISearchBarIconBookmark]; 

अतिरिक्त जानकारी::

मैं उल्लेख करना चाहिए कि खोज पट्टी एक UITableViewController जो एक UISearchDisplayController साथ जुड़ा हुआ है के साथ प्रयोग किया जाता है

यहाँ खोज पट्टी के लिए पूरा कोड है। खोज बार तालिका दृश्य के headerView के रूप में सेट किया जा रहा है।

और यह सब कोड में किया जाता है। कोई स्टोरीबोर्ड या xibs शामिल नहीं हैं।

उत्तर

4

डीबगिंग के एक समूह के बाद, मुझे जवाब मिल गया है। वॉयस ओवर को UISearchBar के बुकमार्क आइकन के लिए कस्टम आइकन पहचानने के लिए, आइकन बिल्कुल सही आकार होना चाहिए।

उपयोग की गई छवियां 40x29px (रेटिना संस्करण के लिए 80x58px) होनी चाहिए। वॉयस ओवर द्वारा किसी भी अन्य आकार और आइकन को मान्यता प्राप्त नहीं है।

मेरी छवियां 38x31px (और 68x62px) थीं।

मेरे मूल प्रश्न में पोस्ट किया गया कोड सभी सही है। एक बार छवियों को आकार में अपडेट करने के बाद, सब कुछ अपेक्षित के रूप में काम करना शुरू कर दिया। कोड में एकमात्र परिवर्तन setPositionAdjustment:forSearchBarIcon: पर कॉल को हटाने का था, जिसे अब और आवश्यकता नहीं थी।

मैं इमेजिंग नहीं कर सकता कि क्यों आइकन आकार में इतना छोटा अंतर कस्टम आइकन के साथ काम करने और काम नहीं कर रहा है। लेकिन वहां है। मुझे उम्मीद है कि यह भविष्य में किसी की मदद करेगा।

+0

@downvoter कृपया डाउनवोट की व्याख्या करें। मैंने उस समस्या का सटीक उत्तर पोस्ट किया जो मेरे पास था। इस मामले के लिए वॉयस ओवेट ठीक से काम करने के लिए यह एक अनियंत्रित आवश्यकता है। – rmaddy

+0

कृपया बताएं कि आपने कहां पाया है कि UISearchBarIconBookmark आकार 40x29px होना चाहिए? क्या यह न्यूनतम आकार, अधिकतम आकार, सटीक आकार या सटीक अनुपात है? मैं इसे किसी अन्य आकार के साथ काम करने में सक्षम था, लेकिन मुझे नहीं पता कि कौन सा अनुशंसित है। –

+0

मुझे इसे परीक्षण और त्रुटि से मिला। मेरा मूल आकार काम नहीं किया। जब मैंने निर्दिष्ट आकार की कोशिश की, तो यह काम करना शुरू कर दिया। मैंने अन्य संयोजनों का परीक्षण नहीं किया है, इसलिए यह निश्चित रूप से संभव है कि कुछ अन्य आकार काम करेंगे। यदि आप काम करने वाले अन्य आकारों के बारे में जानते हैं, तो कृपया उन्हें पोस्ट करें ताकि अन्य लाभ उठा सकें। – rmaddy

1

मैंने आपके प्रश्न में कोड चलाया है, और बुकमार्क बटन वॉयसओवर के माध्यम से सुलभ प्रतीत होता है।

enter image description here

वहाँ कुछ और हो सकता है कि आपके इंटरफेस के साथ दखल दे रहा है? कोई अदृश्य दृश्य जो बुकमार्क बटन के शीर्ष पर अपना रास्ता ढूंढ सकता है? क्या आप एक कस्टम स्पष्ट बटन सेट कर रहे हैं? कोई अन्य विवरण जो आप प्रदान कर सकते हैं?

हालांकि, यह सच है कि यह accessibilityLabel का उपयोग नहीं कर रहा है जिसे आप पास कर रहे हैं; यह सिर्फ "बटन" का उपयोग करता है, जो बेकार है। मैं कहूंगा कि यह शायद यूआईकिट में एक बग है - आपको file a bug होना चाहिए।

+1

धन्यवाद। एक बात जिसे मैंने उल्लेख करने के लिए उपेक्षित किया (और मैं जल्द ही अपना प्रश्न अपडेट करूंगा) यह है कि खोज बार का उपयोग 'UITableViewControler' और' UISearchDisplayController' के साथ किया जा रहा है। खोज बार तालिका दृश्य के 'हेडर व्यू' के रूप में सेट किया गया है। मुझे लगता है कि मुझे एक नई परियोजना बनाने और एक समय में टुकड़े जोड़ने की जरूरत है और देखें कि यह मेरे लिए काम करना बंद कर देता है। – rmaddy

+0

अच्छा विचार - 'UITAbleViewController' में कुछ हो सकता है जो वॉयसओवर में हस्तक्षेप कर रहा है। –

+0

क्या आपने वास्तव में खोज बार के लिए एक कस्टम आइकन सेट किया था? मैंने एक साधारण परीक्षण परियोजना बनाई। यदि मैं डिफ़ॉल्ट बुकमार्क आइकन का उपयोग करता हूं, तो आइकन बटन पहुंच योग्य है। लेकिन जैसे ही मैं अपना खुद का कस्टम बुकमार्क आइकन लागू करता हूं, यह अब उपलब्ध नहीं है। – rmaddy

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

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