Ответ 1
Просто проверяет значение nil и длина длины текста больше 0 - не пустая
if (textField.text && textField.text.length > 0)
{
/* not empty - do something */
}
else
{
/* what ever */
}
Здесь код:
- (IBAction) charlieInputText:(id)sender {
//getting value from text field when entered
charlieInputSelf = [sender stringValue];
if (charlieInputSelf != @"") {
//(send field if not empty
}
}
Это отправляет его, даже когда поле пусто; поэтому это не работает, как я хочу.
Просто проверяет значение nil и длина длины текста больше 0 - не пустая
if (textField.text && textField.text.length > 0)
{
/* not empty - do something */
}
else
{
/* what ever */
}
У нас уже есть встроенный метод, возвращающий логическое значение, указывающее, имеют ли объекты ввода текста какой-либо текст или нет.
// 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 имеет правильный ответ в узком случае, но, как правило, вы не можете сравнивать строковые объекты с помощью операторов == или! =. Вы должны использовать -isEqual:
или -isEqualToString:
Это потому, что charlieImputSelf
и @""
фактически указывают на объекты. Хотя две последовательности символов могут быть одинаковыми, они не должны указывать на одно и то же место в памяти.
Те "работают" в некотором роде. Однако я обнаружил, что пользователь может просто заполнить поле пробелами. Я нашел использование регулярных выражений (хотя то, что я использую для слов без пробелов), я не могу понять, как сделать пробелы.
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
}
}
-(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];
}
}