目标c检查文本字段是否为空

代码如下:

- (IBAction) charlieInputText:(id)sender { //getting value from text field when entered charlieInputSelf = [sender stringValue]; if (charlieInputSelf != @"") { //(send field if not empty } } 

即使该字段为空,也会发送该消息; 因此,这不工作,因为我想要的。

只需检查零,如果文本长度的长度大于0 – 不是空的

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

我们已经有内置的方法返回布尔值,指示文本input对象是否有任何文本。

 // 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 */ } 

Joshua在狭义情况下有正确的答案,但通常情况下,不能使用==或!=运算符来比较string对象。 您必须使用-isEqual:-isEqualToString:这是因为charlieImputSelf@""实际上是指向对象的指针。 虽然这两个字符序列可能是相同的,但是它们不需要指向内存中的相同位置。

那些“工作”在某种程度上。 不过,我发现用户可以用空格填充框。 我发现使用正则expression式有帮助(虽然我使用的是没有空格的单词)我真的不知道如何让空格。

 NSError *error = NULL; NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[ ]" options:NSRegularExpressionCaseInsensitive error:&error]; if (!([[inputField stringValue]isEqualTo:regex])) { NSLog(@"Found a match"); // Do stuff in here // } 

最有效的方法是使用这个

 // 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 } 

检查Swift中的文本字段是否为空

  @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 } }