मैं इस कोशिश की इससे पहले कि मैं griotspeak अद्यतन जवाब देखा:
SEL getTitle = NSSelectorFromString(@"title");
SEL getBackground = NSSelectorFromString(@"background");
SEL setBackground = NSSelectorFromString(@"setBackgroundImage:");
SEL setTitleColor = NSSelectorFromString(@"setTitleColor:");
UIImage *redImage;
UIColor *titleColor;
UIColor *shadowColor;
for (NSObject *object in [action subviews]) {
if ([[NSString stringWithFormat:@"%@", [object class]] isEqualToString:@"UIThreePartButton"]) {
if ([[object performSelector:getTitle] isEqualToString:@"Clear all"]) {
redImage = [object performSelector:getBackground];
titleColor = [object performSelector:@selector(titleColor)];
shadowColor = [object performSelector:@selector(shadowColorForState:) withObject:0];
shadowOffset = [object performSelector:@selector(shadowOffset)];
}
if ([[object performSelector:getTitle] isEqualToString:@"Clear all except this month"]) {
[object performSelector:setBackground withObject:redImage];
[object performSelector:setTitleColor withObject:titleColor];
[object performSelector:@selector(setShadowColor:) withObject:shadowColor];
//[object performSelector:@selector(setShadowOffset:) withObject:CGSizeMake(-2.5,0)];
}
}
}
(मैं नहीं बल्कि एक @selector (से NSSelectorFromString का उपयोग करें) क्योंकि इसका मतलब यह वास्तव में, गैर-दस्तावेजी चीजों का उपयोग नहीं कर रहा है एक तरह से करता है, तो आप प्राप्त है कि मैं क्या मतलब)
यह पूरी तरह से प्रलेखित नहीं है लेकिन मुझे नहीं लगता कि मैंने अनियंत्रित विधियों का उपयोग किया है। असल में यह क्या करता है वह विनाशकारी पृष्ठभूमि से लाल पृष्ठभूमि लेता है और इसे "रद्द करें" नामक दूसरे बटन पर लागू करता है।
तो ऐप्पल को विनाशकारी बटन का रंग बदलना चाहिए, इसलिए गैर-विनाशकारी-विनाशकारी परिवर्तन भी अपडेट की आवश्यकता के बिना होगा। हालांकि यह विशेष रूप से ऐप्पल-सुरक्षित विधियों का उपयोग नहीं करता है।
मैं ऊपर टिप्पणी की बाहर लाइन के साथ मुसीबत का एक छोटा सा आ रही है, अगर तुम मदद कर सकते हैं यहाँ का उत्तर दें: performSelector:withObject:, but not with an object
स्रोत
2010-12-05 21:12:58
बल्कि UIActionSheet को संशोधित करने की कोशिश की तुलना में, मैं यहाँ अपने इंटरफेस डिजाइन पर पुनर्विचार चाहते हैं। सूची में एक से अधिक विध्वंसक विकल्प होने से भ्रमित हो रहा है और मंच मानकों के खिलाफ चला जाता है। शायद आप अपने समाशोधन कार्यों को आसानी से पूर्ववत कर सकते हैं, जिससे उन्हें अनौपचारिक बना दिया जा सकता है। –
यह एक स्पष्ट इतिहास बटन है इसलिए इसे पूर्ववत नहीं किया जाना चाहिए। मुझे लगता है कि मेरे पास 2 विकल्प के साथ एक विनाशकारी के रूप में एक एक्शन शीट हो सकती है और फिर एक विनाशकारी बटन के साथ एक और एक्शन शीट के साथ पुष्टि के लिए पूछें। लेकिन ऐसा नहीं है कि उपयोगकर्ता फोन को परेशान कर रहा है। –