मुझे लगता है कि आईओएस क्या कर रहा है, यह आखिरी बटन को रद्द बटन होने की उम्मीद है (भले ही यह है या नहीं) और इसे हटा रहा है, लेकिन शायद केवल आईपैड के लिए। ऐसा शायद इसलिए है क्योंकि उपयोगकर्ता के बाहर इसे खारिज करने के लिए कार्रवाई शीट को टैप कर सकता है। ऐप्पल की डिज़ाइन पसंद के साथ मेरी समस्या यह है कि यह हमेशा स्पष्ट नहीं हो सकता है कि संवाद इस तरह से खारिज कर दिया जा सकता है या इसे हटाया जाना चाहिए।
उदाहरण के लिए, मैं [actionSheet showInView:self.view];
पर कॉल करके अपनी एक्शन शीट दिखा रहा हूं, यह पूरे दृश्य को डिवाइस के बीच में प्रदर्शित एक्शन शीट के साथ ग्रेड करने का कारण बनता है। उपयोगकर्ता जा रहे हैं - ठीक है, मेरी राय में - मान लीजिए कि उन्हें बटनों में से एक चुनना है।
मुझे लगता है कि अन्य एक्शन शीट डिस्प्ले मैकेनिज्म हैं - जैसे कि इसे बार बटन आइटम से जुड़े बबल के रूप में प्रदर्शित करता है - जहां एक रद्द बटन स्पष्ट रूप से अनावश्यक है। यह अच्छा होगा अगर ऐप्पल ने यहां अधिक लचीलापन की अनुमति दी। मेरे ऐप के लिए, मुझे शायद अपने कस्टम कन्स्ट्रक्टर में गुजरने वाले सरणी के अंत में एक डमी बटन जोड़ना होगा, यह जानकर कि आईओएस इसे छुपाएगा। यदि व्यवहार आईओएस की भावी रिलीज में बदलता है ... अच्छा, मुझे उस समय इसे संबोधित करना होगा।
अपने मामले में, मैं कन्स्ट्रक्टर का उपयोग न करने की अनुशंसा करता हूं जो कि बटन को हटाता है बटन और विनाशकारी बटनटन। इसके बजाय, उप-वर्ग UIActionSheet और उपरोक्त विधि का उपयोग कर मैन्युअल रूप से बटन जोड़ें। फिर, वांछित सूचकांक में रद्द करें बटन Index और विनाशकारी बटन Index सेट करें। याद रखें कि आप उन दो गुणों को सेट करने के लिए नहीं हैं; वे -1 (कोई बटन) के लिए डिफ़ॉल्ट। साथ ही, अपने बटन की स्थिति के बारे में एचआईजी का पालन करना याद रखें।
यहाँ मेरी उपवर्ग 'कंस्ट्रक्टर्स (संक्षिप्तता के लिए संपादित) में से एक, केवल आपके जानकारी देने के लिए है:
- (instancetype)initWithTitle:(NSString *)title
buttonTitles:(NSArray *)buttonTitles
cancelButtonIndex:(NSInteger)cancelButtonIndex
destructiveButtonIndex:(NSInteger)destructiveButtonIndex
{
self = [super initWithTitle:title delegate:nil cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
if (self)
{
if (buttonTitles)
{
[buttonTitles enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)
{
[self addButtonWithTitle:obj];
}];
}
self.cancelButtonIndex = cancelButtonIndex;
self.destructiveButtonIndex = destructiveButtonIndex;
if (self.cancelButtonIndex > -1)
{
[self addButtonWithTitle:@""];
}
}
return self;
}
कितने आइटम '_menuItems' में देखते हैं? – matsr