2013-04-22 5 views
7

मेरे पास UITextField के साथ UITlertView है। मैंने UIAlertView प्रतिनिधि से कनेक्ट किया है और मैं UITextField में पाठ के आधार पर alertViewShouldEnableFirstOtherButton: में YES या NO वापस कर देता हूं।UIAlertView कॉल करने के लिए कैसे करें 'अलर्टव्यूशोल्डएनेबल फर्स्टऑथर बटन:' परिवर्तन करने के बाद?

मुझे प्रोग्राम फ़ील्ड के पाठ को प्रोग्रामेटिक रूप से बदलने की आवश्यकता है। यह उम्मीद के रूप में काम करता है।

दुर्भाग्य से मुझे नहीं पता कि UIAlertView को alertViewShouldEnableFirstOtherButton: प्रतिनिधि विधि को कैसे कॉल करें ताकि टेक्स्टफिल्ड के टेक्स्ट को बदलने के बाद यह अन्य बटन को सक्षम या अक्षम कर सके।

मैंने सोचा कि UIAlertView UITextField के लक्ष्य के रूप में पंजीकृत है, इसलिए मैंने टेक्स्टफ़िल्ल्ड से UIControlEventValueChanged भेजने की कोशिश की। काम नहीं किया


स्टैक ट्रेस से मैं पता लगा प्रतिनिधि विधि निजी UIAlertView विधि _alertSheetTextFieldDidChange: से कहा जाता है।

तो यदि मैं टेक्स्ट बदलने के बाद [self.currentAlert performSelector:@selector(_alertSheetTextFieldDidChange:) withObject:textField]; करता हूं, तो प्रतिनिधि विधि को कॉल किया जाता है और बटन की सक्षम स्थिति बदल जाती है। लेकिन, चूंकि यह एक निजी विधि है, इसलिए ऐप शायद खारिज कर दिया जाएगा। मैं इसे जोखिम नहीं लेना चाहता हूं।


क्या अलर्ट व्यू कॉल alertViewShouldEnableFirstOtherButton: बनाने का कोई साफ तरीका है?

उत्तर

8

मैं एक नियंत्रण घटना भेजने के साथ सही रास्ते पर था। मैं सिर्फ गलत घटना का चयन करता हूं।

यह काम करेगा:

[textField sendActionsForControlEvents:UIControlEventEditingChanged]; 
+0

मैं बस के साथ-साथ इस समस्या का सामना किया है, और यह जवाब काम करता है और यह ऐसा करने का सही तरीका प्रतीत हो रहा है – Alex

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