目标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 } }