2010-07-04 10 views
34

कोड यह रिक्त है:उद्देश्य ग पाठ क्षेत्र है कि क्या जाँच

- (IBAction) charlieInputText:(id)sender { 
    //getting value from text field when entered 
    charlieInputSelf = [sender stringValue]; 

    if (charlieInputSelf != @"") { 
     //(send field if not empty 
    } 
}  

भी जब मैदान खाली है यह भेजता है; इसलिए, यह काम नहीं करता है क्योंकि मैं इसे चाहता हूं।

उत्तर

80

सीधे शब्दों में नहीं के बराबर जांच करता है और अगर पाठ की लंबाई की लंबाई है 0 से अधिक - खाली नहीं

if (textField.text && textField.text.length > 0) 
{ 
    /* not empty - do something */ 
} 
else 
{ 
    /* what ever */ 
} 
+12

में रिक्त है के द्वारा होता है मैं ढेर की तरह महसूस की तुलना में अधिक उपयोगी संदर्भ बन गया है किसी भी प्रमुख प्लेटफार्मों आधिकारिक दस्तावेज – ChuckKelly

+2

असल में अगर पाठ फ़ील्ड नहीं के बराबर है तो textField.text.lenght == 0. तो तुम कम कर सकते हैं, तो करने के लिए: 'अगर (textField.text.lenght> 0)' –

+0

दोनों स्थितियां पारस्परिक रूप से निर्भर हैं। केवल एक शर्त रखें। 0 और 0 = 0, 1 और 1 = 1 – Saranjith

6

यहोशू संकीर्ण मामले में सही जवाब है, लेकिन आम तौर पर, आप का उपयोग कर स्ट्रिंग वस्तुओं की तुलना नहीं कर सकते == या! = ऑपरेटर। आपको -isEqual: या -isEqualToString: का उपयोग करना होगा क्योंकि यह charlieImputSelf और @"" वास्तव में ऑब्जेक्ट्स के पॉइंटर्स हैं। हालांकि पात्रों के दो अनुक्रम समान हो सकते हैं, उन्हें स्मृति में उसी स्थान पर इंगित करने की आवश्यकता नहीं है।

+3

से तो यदि आप यह जांचना चाहते हैं कि टेक्स्ट फ़ील्ड का मान 'बू 'के बराबर था, तो आपको' if ([textField.text isEqualToString का उपयोग करना होगा: @ "बू"]) '' बजाय की अगर (textField.text == @ "बू") ' –

+0

हाँ (यह कष्टप्रद मैं सिर्फ इस पाठ बॉक्स में प्रवेश नहीं कर सकते 'हां') – JeremyP

2

वे 'काम' एक तरह से। हालांकि, मैंने पाया कि उपयोगकर्ता बस रिक्त स्थान के साथ बॉक्स भर सकता है। मैंने नियमित अभिव्यक्तियों का उपयोग करने में मदद की है (हालांकि मैं जो भी उपयोग करता हूं वह बिना रिक्त स्थान के शब्दों के लिए है) मैं वास्तव में यह नहीं समझ सकता कि रिक्त स्थान को कैसे अनुमति दें।

NSError *error = NULL; 
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[ ]" options:NSRegularExpressionCaseInsensitive error:&error]; 

if (!([[inputField stringValue]isEqualTo:regex])) { 
     NSLog(@"Found a match"); 
// Do stuff in here // 
} 
49

हमारे पास पहले से ही अंतर्निहित विधि है जो बूलियन मान लौटाती है जो इंगित करती है कि टेक्स्ट-एंट्री ऑब्जेक्ट्स में कोई टेक्स्ट है या नहीं।

// In Obj-C 
if ([textField hasText]) { 
     //* Do Something you have text 
    }else{ 
     /* what ever */ 
    } 

// In Swift 

if textField.hasText { 
    //* Do Something you have text 
}else{ 
    /* what ever */ 
} 
+12

यह होना चाहिए सही (स्वीकार किए जाते हैं) उत्तर –

+0

मुझे हैक्स्ट के बारे में पता नहीं था! – DogCoffee

+0

क्लाइंटनाम = clientNameTF.hasText() दें? clientNameTF.text! : "ग्राहक का नाम" – DogCoffee

1

यह करने के लिए सबसे कुशल तरीका यह

// set it into an NSString 
NSString *yourText = yourVariable.text; 

if([theText length] == 0]) 
{ 
// Your Code if it is equal to zero 
} 
else 
{ 
// of the field is not empty 

} 
1

चेक का उपयोग कर कि क्या पाठ क्षेत्र स्विफ्ट

@IBOutlet weak var textField: NSTextField! 
    @IBOutlet weak var multiLineTextField: NSTextField! 

    @IBAction func textChanged(sender: AnyObject) { 
    //println("text changed! \(textField.stringValue)") 

    if textField.stringValue.isEmpty == false { 
     multiLineTextField.becomeFirstResponder() 
     multiLineTextField.editable = true 
    } else { 
     multiLineTextField.editable = false 
    } 
    } 
संबंधित मुद्दे