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

时间:2010-07-04 03:58:16

标签: objective-c xcode variables nstextfield

以下是代码:

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

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

即使字段为空,也会发送它;因此,这不符合我的要求。

8 个答案:

答案 0 :(得分:84)

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

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

答案 1 :(得分:53)

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

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

答案 2 :(得分:7)

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

答案 3 :(得分: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 //
}

答案 4 :(得分: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

}

答案 5 :(得分: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
    }
  }

答案 6 :(得分:0)

 db_task.aggregate([
        {
            $match: { '_id': ObjectId("5d8b522d0cf2579c57bc8ce0") }
        },
        {
            $unwind: '$users'
        },
        {
            $lookup: {
                from: 'db_user',
                localField: 'users.user_id',
                foreignField: '_id',
                as: 'user_info'
            }
        },
        {
            $project: {
                $users: {
                    user_id: 1,
                    is_finished: 1,
                    user_info:'$user_info',
                }
            }
        },
        {
            $group: {
                _id: '$_id',
                users: {
                    $push: '$users'
                },
            }
        },
    ])

答案 7 :(得分:0)

最简单的方法。

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

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

现在您的字符串没有空格。 您只需要检查此字符串是否为空即可。

if (textWithoutSpaces != 0) {
 /* not empty - do something */
} else {
  /* empty - do something */
}