Цель c проверка, является ли текстовое поле пустым - PullRequest
36 голосов
/ 04 июля 2010

Вот код:

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

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

Отправляет его, даже если поле пустое;следовательно, это не работает так, как я хочу.

Ответы [ 6 ]

84 голосов
/ 04 июля 2010

Просто проверяет на ноль, а если длина текста больше 0 - не пусто

if (textField.text && textField.text.length > 0)
{
   /* not empty - do something */
}
else
{
   /* what ever */
}
53 голосов
/ 08 сентября 2014

У нас уже есть встроенный метод, который возвращает логическое значение, которое указывает, есть ли у объектов ввода текста какой-либо текст или нет.

// 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 */
}
8 голосов
/ 04 июля 2010

У Джошуа правильный ответ в узком случае, но обычно нельзя сравнивать строковые объекты с помощью операторов == или! =. Вы должны использовать -isEqual: или -isEqualToString: Это потому, что charlieImputSelf и @"" на самом деле являются указателями на объекты. Хотя две последовательности символов могут быть одинаковыми, они не обязательно должны указывать на одно и то же место в памяти.

2 голосов
/ 13 мая 2012

Эти «работы» в пути. Однако я обнаружил, что пользователь может просто заполнить поле пробелами. Я обнаружил, что использование регулярных выражений помогает (хотя я использую слова без пробелов), но я не могу понять, как сделать разрешенные пробелы.

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

if (!([[inputField stringValue]isEqualTo:regex])) {
        NSLog(@"Found a match");
// Do stuff in here //
}
1 голос
/ 11 апреля 2015

Проверьте, является ли текстовое поле пустым в 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
    }
  }
1 голос
/ 21 октября 2014

Самый эффективный способ сделать это - использовать

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

}
...