2012-01-26 17 views
9

मेरे पास UITextFields का एक गुच्छा है जहां सबमिट करने वाले बटन को दबाए जाने से पहले उपयोगकर्ता को नंबर दर्ज करना होगा (कीबोर्ड नंबर पैड है)। जब सबमिट बटन दबाया जाता है, तो "चेक" विधि कहा जाता है जो यह जांचना चाहता है कि डेटा मान्य है या नहीं ... उर्फ ​​खाली नहीं है। अब यह आसान होगा अगर यह सिर्फ एक टेक्स्ट फ़ील्ड था लेकिन मेरे पास 14 है। मुझे एक साधारण if-statement चाहिए जो जांचता है कि फ़ील्ड में से कोई एक फ़ील्ड खाली है या नहीं।कैसे जांचें कि UITextFields खाली हैं या नहीं?

मेरे पास यूआईटीएक्स्टफिल्ड्स का पालन है की घोषणा की: नंबर_1, नंबर_2, number3 आदि आदि और मैं पालन तार घोषित जो UITextField.text का मूल्य ले जा सकते हैं ... वे की घोषणा की जाती है: temp1, temp2, temp3 आदि ...

मैं कैसे होगा यदि नीचे दिए गए विवरण की तरह कोई छद्म कोड बनाने के बारे में जाएं?

धन्यवाद

if (!valid) 
{ 

NSLog (@"not valid) 
} 

else 
{ 
//proceed to next method 
} 

उत्तर

25

मैं के रूप में UITextField चर मान रहा हूँ * tfield इसलिए यहाँ समाधान

है
if (tfield.text.length > 0 || tfield.text != nil || ![tfield.text isEqual:@""]) 
{ 
    //do your work 
} 
else 
{ 
    //through error 
} 
+0

यह कैसे काम करेगा क्योंकि मेरे सभी UITextField चरों को * tfield नामित नहीं किया जा सकता है?धन्यवाद – Teddy13

+0

टेक्स्ट फ़ील्डशल्डरेटर्न: (यूआईटीएक्स्टफिल्ड *) टफील्ड इस प्रतिनिधि फ़ंक्शन का उपयोग करता है, नड उपरोक्त कोड को उपयोगकर्ता प्रेस रिटर्न बटन –

+0

के बाद जांचने के लिए रखता है, यह इसके बजाय && – user1686342

0
you can put like this 


    if(![temp1 isEqualToString:@""] && ![temp2 isEqualToString:@""] ... ![temp14 isEqualToString:@""]) 
    { 
    NSLog (@" valid); 
    } 
    else 
    {NSLog (@"not valid); 
} 
+0

क्या यह गलत तरीका नहीं है? यदि सभी '@" के बराबर नहीं हैं तो यह मान्य है। – mattjgalloway

+0

हाँ, मैंने इसे सही किया है –

7

मुझे लगता है कि कुछ इस तरह तुम क्या चाहते है। स्ट्रिंग खाली है या नहीं, यह जांचने के लिए यह सिर्फ isEqualToString: का उपयोग कर रहा है।

NSString *temp1 = number1.text; 
NSString *temp2 = number2.text; 
... ///< temp3, etc 

if ([temp1 isEqualToString:@""]) { 
    // temp1 not valid 
} else if ([temp2 isEqualToString:@""]) { 
    // temp2 not valid 
} ... { 
    // temp3, etc 
} else { 
    // Valid 
} 

आप जब temp1 हथियाने ताकि @" " भी खाली हो जाएगा खाली स्थान के पात्रों ट्रिम करने के लिए कर सकते हैं। उसके लिए, तो जैसे stringByTrimmingCharactersInSet: विधि NSString के पर एक नज़र डालें:

NSString *temp1 = [number1.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 

अद्यतन:

आप एक सरणी आप की तरह कुछ कर सकता है के साथ यह करने के लिए करना चाहते हैं:

NSMutableArray *array = [NSMutableArray arrayWithCapacity:0]; 
[array addObject:number1.text]; 
[array addObject:number2.text]; 
... ///< number3, etc 

BOOL ok = YES; 
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 
    if ([obj isEqualToString:@""]) { 
     ok = NO; 
     *stop = YES; 
    } 
}]; 

if (ok) { 
    // Valid 
} else { 
    // Not valid 
} 
+0

धन्यवाद लेकिन मेरे मन में क्या नहीं था ... क्या यह एक और आसान तरीका है जैसे कि उनमें से सभी को एक सरणी में डालना और फिर जांच करना कि सरणी में खाली स्ट्रिंग है या नहीं? – Teddy13

+0

यह लिखने से ज्यादा तेज़ नहीं होगा। आपको सरणी के माध्यम से लूप करना होगा और देखें कि कोई भी तार खाली है या नहीं। इस पर निर्भर करता है कि आपको कितने मिल गए हैं। – mattjgalloway

+0

@ टेडी 13 ने इसे करने का एक सरणी तरीका जोड़ा है यदि आप वास्तव में चाहते हैं। – mattjgalloway

1

कुछ इस तरह अपने UITextFields के माध्यम से पुनरावृति जाएगा:

[self.view.subviews enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 
    if ([obj isKindOfClass:[UITextField class]]) { 
    // do your checks 
    } 
}]; 
5

या तुम सिर्फ

[myTextField hasText]; 

यदि फ़ील्ड रिक्त है जो नहीं लौटेगा कह सकते हैं।

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