Ich habe viele Textfelder, und auf Absenden klicken Sie auf Ich möchte eine Warnmeldung mit den Namen der leeren Textfelder anzeigen, eine bequeme Möglichkeit, dies ohne lange Zeilen zu tun, wenn Bedingungen?Wie zeigt man auf Knopfdruck, welches Textfeld leer ist?
Antwort
Es gibt zwei Möglichkeiten:
1) Wenn Sie Ausgänge jedes Textfeld haben, dann können Sie prüfen, mit if-else wie
if (self.textField.text.length > 0) {
NSLog(@"textField is not empty");
}
2) Sie alle Subviews bekommen in Array durch Aufruf der Methode subviews
. So können Sie eine Methode mit Rückgabetyp BOOL etwas machen wie,
-(BOOL)checkTextFieldIsEmpty{
NSArray *arr = [self.view subviews];
for (int i = 0; i < arr.count; i++) {
if ([[arr objectAtIndex:i] isKindOfClass:[UITextField class]]) {
UITextField *tempTextField = (UITextField*)[arr objectAtIndex:i];
if (tempTextField.text.length >0) {
NSLog(@"textfield is not empty");
}
else{
NSLog(@"textfield is empty");
return NO;
}
}
}
return YES;
}
Dann können Sie diese Methode aufrufen, auf die Schaltfläche klicken Sie auf Absenden. Wenn ein Textfeld leer ist, wird NO
else YES
zurückgegeben. Wenn Sie Ja bekommen, dann gehen Sie weiter.
Update:
Wenn Sie leere Textfield-Liste auf Alertview zeigen wollen, dann können Sie etwas tun, wie,
-(void)checkTextFieldIsEmpty{
NSArray *arr = [self.view subviews];
NSString *emptyTextFieldName = [[NSString alloc]init];
for (int i = 0; i < arr.count; i++) {
if ([[arr objectAtIndex:i] isKindOfClass:[UITextField class]]) {
UITextField *tempTextField = (UITextField*)[arr objectAtIndex:i];
if (tempTextField.text.length >0) {
NSLog(@"textfield is not empty");
}
else{
NSLog(@"textfield is empty");
emptyTextFieldName = [emptyTextFieldName stringByAppendingString:[NSString stringWithFormat:@"%@, ",tempTextField.placeholder]];
}
}
}
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Empty TextFiel" message:emptyTextFieldName delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
}
Kann es nicht so einfach sein, wie unten?
NSString *errorMessage = @"Please fill data for below fields.";
int isError = 0;
if (postalCode.text.length==0) {
errorMessage = [NSString stringWithFormat:@"%@\n\n%@", errorMessage, @"Postal Code"];
isError++;
}
if (industry.text.length==0) {
errorMessage = [NSString stringWithFormat:@"%@\n\n%@", errorMessage, @"Industry"];
isError++;
}
// now do these steps for all fields.
if (isError>=1) {
// show alert with errorMessage
// also if you specify how many fields are missed, you can use isError variable
}
Es gibt zwei Möglichkeiten, die Sie ergreifen können, je nachdem, wie Sie den Namen nennen.
1) Wenn der in Ihrem Screenshot angezeigte Platzhaltertext der Name ist oder nahe genug an dem gewünschten Namen ist, können Sie diesen einfach verwenden. Iterieren Sie über die Textfelder, bis Sie ein leeres Feld gefunden haben, und zeigen Sie anhand des Platzhaltertexts eine Warnung an.
NSArray *textfields = @[
self.textfield1,
self.textfield2,
];
for (UITextField *tf in textfields) {
if (tf.text.length == 0) {
// Show alert with tf.placeholder
break;
}
}
2) Wenn Sie bestimmte Namen benötigen, können Sie ein Wörterbuch erstellen, die die Namen ihrer Textfelder abbildet. Sie durchlaufen dann das Wörterbuch und suchen nach dem entsprechenden Textfeld.
NSDictionary<NSString *, UITextField *> *textfieldNameMap = @{
@"Name 1" : self.textfield1,
@"Name 2" : self.textfield2,
};
[textfieldNameMap enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
NSString *name = (NSString *)key;
UITextField *tf = (UITextField *)obj;
if (tf.text.length == 0) {
// Show alert using name
*stop = YES;
}
}
Beachten Sie, dass das Wörterbuch nicht UITextField
als Schlüssel verwenden kann, weil diese Klasse nicht zu NSCopying
nicht entspricht. Beachten Sie auch, dass die Reihenfolge, in der Textfelder gefunden werden, nicht deterministisch ist.
You can use this code for every text field of view controller in the button action block. Something like this -
@IBAction func SubmitButtonAction(sender: UIButton)
{
if (textField.text.isEmpty)
{
let alert = UIAlertView()
alert.title = "No Text"
alert.message = "Please Enter Text In The Box"
alert.addButtonWithTitle("Ok")
alert.show()
}
}
Ich fand später heraus, dass es keine Möglichkeit gibt, dies jetzt zu tun.
1) Dies ist keine Antwort auf Ihre Frage. 2) Es ist einfach nicht wahr. Es kann getan werden. – rmaddy
- 1. Blank ein Textfeld auf Knopfdruck
- 2. Wie der vorherige Textfeld Wert auf Knopfdruck bleiben
- 3. Wie überprüft man, ob das Textfeld leer ist?
- 4. Angular: Wie man Suche auf Knopfdruck durchführt
- 5. JFrame zeigt aber ist leer
- 6. Wie zu bestimmen, welches Textfeld aktiv ist swift
- 7. Objective c ob Textfeld Überprüfung ist leer
- 8. Wie man ein Textfeld öffnet
- 9. wie man ein Textfeld im Formular auf Knopfdruck in Laravel hinzufügen/löschen?
- 10. Wie auf Knopfdruck
- 11. ng wiederholen auf Knopfdruck
- 12. Wie überprüfe ich, ob ein Textfeld leer ist mit Javascript?
- 13. Wie überprüft man, ob ein Textfeld nicht leer ist und der Wert kleiner als 500 ist?
- 14. Update JTextField auf Knopfdruck
- 15. Wie man einen Tisch beim Laden versteckt und dann auf Knopfdruck zeigt
- 16. Wie bekomme ich das Textfeld leer? Was ist hier falsch?
- 17. Wie schreibe ich "wenn Textfeld leer ist" in Visual C++
- 18. Abfrage auf Knopfdruck ausführen
- 19. Wie man editierbaren div Inhalt in Array auf Knopfdruck speichert
- 20. Wie zeigt man eine veröffentlichte Version in einem Textfeld an?
- 21. JSTL geschachtelt fürJedes auf Array zeigt leer
- 22. Angularjs Popover zeigt zum ersten Mal einen Pfeil auf Knopfdruck
- 23. Wie man brakelines in asp.net Textfeld multiline zeigt?
- 24. Wie überprüft man, ob das Feld leer oder leer ist?
- 25. Autotest zeigt leer
- 26. Wie man einen Festzelt einmal auf Knopfdruck macht?
- 27. Wie löst man alle Anker-Tags auf Knopfdruck aus?
- 28. MooTools: Wie man Javascript auf Knopfdruck anfordert und auswertet
- 29. wie man uiimages Bild auf Knopfdruck in swift ändert?
- 30. Wie man Runnable auf Knopfdruck in Android stoppt?
Down abstimmen, da diese Frage keine spezifische Antwort hat. – BangOperator
@AbhinandanPratap Es gibt kein serial down voting. Keine der Antworten macht tatsächlich, was gefragt wird. Das OP möchte eine Warnung, die eine Liste aller Felder anzeigt, die leer sind. Und außerdem sollte niemand eine Antwort auf solch eine schlechte Frage veröffentlichen (aber nicht die Ursache für irgendwelche Downvotes bei den Antworten). Antworten auf schlechte Fragen fördern nur noch mehr schlechte Fragen. – rmaddy
ich denke, wenn harshil oder andere objektive c oder andere tech lernen müssen, müssen sie ihre eigenen Bemühungen zu finden, einfache Lösung anstatt diese Baby wie Fragen hier .. – vaibhav