2009-12-22 12 views
10

को अस्वीकार करने से रोकें, सत्यापन के रूप में, क्या "ठीक" बटन दबाते समय चेतावनी दृश्य को रोकने से रोकने का कोई तरीका है?UIAlertView को

परिदृश्य: मेरे पास उपयोगकर्ता नाम/पासवर्ड के लिए अलर्टव्यू में 2 टेक्स्ट फ़ील्ड हैं। यदि दोनों खाली हैं और उपयोगकर्ता "ठीक" दबाता है, तो मैं नहीं चाहता कि अलर्ट को खारिज कर दिया जाए।

+0

आइट्यून्स पासवर्ड विजेट की तरह? क्या ऐप्पल इसके लिए UIAlertView का उपयोग करता है? –

उत्तर

0

मुझे विश्वास नहीं है कि आपको वास्तव में किसी भी बटन नाम में पास करने की आवश्यकता है। बस अपना ओके बटन स्ट्रिंग निकालें और इसे "शून्य" के रूप में छोड़ दें।

9

आप इसे गलत तरीके से कर रहे हैं, आपको इनपुट के अनुसार सबमिट बटन को सक्षम और अक्षम करना चाहिए। सबसे पहले आपको बटन तक पहुंच प्राप्त करनी होगी।

[alert addButtonWithTitle:@"OK"]; 
UIButton *submitButton = [[alert subviews] lastObject]; 
[submitButton setEnabled:…]; 

और फिर आप उन textfields के लिए एक प्रतिनिधि बटन जब खेतों को बदलने की स्थापना की और सक्षम या अक्षम करने के लिए है: यह, बस, बटन के बिना सूचना बनाने एक स्टैंडअलोन बटन बनाने और संवाद के लिए इसे जोड़ने के लिए आसान है :

- (BOOL) textField: (UITextField*) textField 
    shouldChangeCharactersInRange: (NSRange) range 
    replacementString: (NSString*) string 
{ 
    int textLength = [textField.text length]; 
    int replacementLength = [string length]; 
    BOOL hasCharacters = (replacementLength > 0) || (textLength > 1); 
    [self setButtonsAreEnabled:hasCharacters]; 
} 

// Disable the ‘Return’ key on keyboard. 
- (BOOL) textFieldShouldReturn: (UITextField*) textField 
{ 
    return NO; 
} 
बेशक

आप एक अलग वर्ग में यह सब लपेट ताकि आप गंदगी अपने कॉलिंग कोड नहीं करना चाहिए।

12

आईओएस 5 इस समस्या को ठीक करने के लिए UIAlertView पर एक नई संपत्ति पेश करता है।

alert.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput; 

Apple documentation on UIAlertView.

नई UIAlertViewDelegate विधि बटन के सक्षम/अक्षम करने को संभालने के लिए जोड़ें।

- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView 

Apple documentation on UIAlertViewDelegate.

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