38

这是代码:

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

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

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

4

8 回答 8

88

只需检查 nil 以及文本长度是否大于 0 - 不为空

if (textField.text && textField.text.length > 0)
{
   /* not empty - do something */
}
else
{
   /* what ever */
}
于 2010-07-04T04:01:52.960 回答
57

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

// 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 */
}
于 2014-09-08T14:36:11.477 回答
8

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

于 2010-07-04T12:19:36.430 回答
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 //
}
于 2012-05-12T22:39:49.363 回答
1

检查 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
    }
  }
于 2015-04-10T23:12:08.230 回答
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

}
于 2014-10-21T19:39:31.117 回答
1

最简单的方法。

创建不带“”(空格)的新 NSString

NSString *textWithoutSpaces = [self.textField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

现在你有没有空格的字符串。你只需要检查这个字符串是否为空。

if (textWithoutSpaces != 0) {
 /* not empty - do something */
} else {
  /* empty - do something */
} 
于 2019-11-08T12:01:48.510 回答
0
-(void)insert{

    if ([_nameofView  isEqual: @""]) {
        UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Alert"
                                                                       message:@"Fill the Name Field First."
                                                                preferredStyle:UIAlertControllerStyleAlert];

        UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
                                                              handler:^(UIAlertAction * action) {}];

        [alert addAction:defaultAction];
        [self presentViewController:alert animated:YES completion:nil];



    }
    else if ([_detailofview  isEqual: @""]){

        UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Alert"
                                                                       message:@"Fill the Details Field First."
                                                                preferredStyle:UIAlertControllerStyleAlert];

        UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
                                                              handler:^(UIAlertAction * action) {}];

        [alert addAction:defaultAction];
        [self presentViewController:alert animated:YES completion:nil];

    }
    else{
        UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"Alert"
                                                                       message:@"Data Inserted Successfully."
                                                                preferredStyle:UIAlertControllerStyleAlert];

        UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
                                                              handler:^(UIAlertAction * action) {}];

        [alert addAction:defaultAction];
        [self presentViewController:alert animated:YES completion:nil];

    }
}
于 2019-10-12T06:15:46.810 回答