Ich bin neu in IOS ich möchte mehrere Textfelder mit nur einem Picker progamatisch erstellen. Angenommen, ich brauche fünf Textfelder bedeutet, wenn ich geklickt habe erste Textfeld-Picker-Ansicht kann das erste Array laden, dann gehe ich zum zweiten Textfeld bedeutet Picker-Ansicht kann zweite Array automatisch laden und geht bis zum letzten Feld und array.please geben Sie mir eine Idee und Vorschlag basierend auf meinem Problem.Mehrere Textfelder mit Einzelauswahl in IOS
Antwort
Kann sein, das wird Ihnen helfen,
ich den gleichen Code in meinem Projekt getan und es funktioniert. Hier gebe ich dir Code für drei Textfelder.
NSMutableArray *pickerTitleData, *pickerCityData, *pickerStateData;
@property (strong, nonatomic) IBOutlet UItextfield *txtTitle;
@property (strong, nonatomic) IBOutlet UItextfield *txtTitle;
@property (strong, nonatomic) IBOutlet UItextfield *txtTitle;
UIPickerView *TitleSelect,*CitySelect, *StateSelect;
for address type
pickerTitleData =[[NSMutableArray alloc]initWithObjects:@"Home",@"Office",@"Other", nil];
TitleSelect = [[UIPickerView alloc]init];
TitleSelect.dataSource = self;
TitleSelect.delegate = self;
TitleSelect.showsSelectionIndicator = YES;
txtTitle.inputView = TitleSelect;
// same you have three other array
#pragma mark - Picker View Data source for city
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
@try
{
if (pickerView == TitleSelect)
{
return pickerTitleData.count;
}
else if (pickerView == CitySelect)
{
return pickerCityData.count;
}
else if (pickerView == StateSelect)
{
return pickerStateData.count;
}
return 1;
}
@catch (NSException *exception)
{
NSLog(@"exception--%@",exception.description);
}
}
#pragma mark- Picker View Delegate for city
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
@try
{
if (pickerView == TitleSelect)
{
[txtTitle setText:[pickerTitleData objectAtIndex:row]];
}
else if (pickerView == CitySelect)
{
[txtTownOrCity setText:[pickerCityData objectAtIndex:row]];
}
else if (pickerView == StateSelect)
{
[txtState setText:[pickerStateData objectAtIndex:row]];
}
}
@catch (NSException *exception)
{
NSLog(@"%@",exception.description);
}
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
@try
{
if (pickerView == TitleSelect)
{
return pickerTitleData[row];
}
else if (pickerView == CitySelect)
{
return pickerCityData[row];
}
else if (pickerView == StateSelect)
{
return pickerStateData[row];
}
return @"";
}
@catch (NSException *exception)
{
NSLog(@"%@",exception.description);
}
}
Ich hatte eine in Ihrer Codierung gekauft, warum alle Textfeld Name gleich? @ PALAK iOS Entwickler –
es ist nur ein Beispiel, das Sie mit Ihrer Wahl ändern können .. –
Befolgen Sie diese Schritte, um Ihr Ziel zu erreichen.
Herunterladen unter generische Klassen von bestimmten Link:
Kopieren Sie diese Klasse in Ihr Projekt und importieren "LabeledPickerView.h" in Ihre ViewController.h Datei. Fügen Sie auch UIPickerViewDataSource, UIPickerDelegate und UITextFieldDelegate hinzu. Jetzt
, initialisiert Picker mit folgenden Methode: -
-(LabeledPickerView *)GetPickerViewWithTag:(int)Tag { LabeledPickerView *pickerView = [[LabeledPickerView alloc] init]; pickerView.dataSource = self; pickerView.delegate = self; pickerView.tag = Tag; pickerView.backgroundColor = [UIColor whiteColor]; pickerView.showsSelectionIndicator = YES; return pickerView; }
Diese Methode pickerEigenschaften zurück.
Nun werden wir Daten in dieses Add UIPickerView Delegate und Datenquelle Methoden wie folgt verwendet: -
//Based on the text fields tags, you can populate the data in PickerView. -(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { return 1; //Returns components in PickerView. Change with switch - case statement if you want more components in any of the text fields. } -(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { int tag = (int)((UIPickerView *)pickerView).tag; switch (tag) { case 10: { if (YourArray.count > 0) { return [YourArray count]; } else { return 0; } break; } default: break; } return 0; } -(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { int tag = (int)((UIPickerView *)pickerView).tag; switch (tag) { case 10: { if ([YourArray count] > 0) { return [YourArray objectAtIndex:row]; } else { return @""; } break; } default: break; } return @""; } -(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { int tag = (int)((UIPickerView *)pickerView).tag; switch (tag) { case 10: { if ([YourArray count] > 0) { YourTextField.text = [YourArray objectAtIndex:row]; } else { txtCity.text = @""; } break; } default: break; } }
Nun öffnen Picker, wenn Sie Bearbeitung starten wie folgt:
-(void)textFieldDidBeginEditing:(UITextField *)textField { if (textField == firstTextField) { LabeledPickerView *picker = [self GetPickerViewWithTag:10]; //Change tag as text field changes.. textField.inputView = picker; [picker selectRow:0 inComponent:0 animated:YES]; [self pickerView:picker didSelectRow:0 inComponent:0]; } }
Fügen Sie in dieser Methode so viele Textfelder hinzu, wie Sie haben. Vergessen Sie nicht, jedem Textfeld verschiedene Tags zuzuweisen.
Mit dem obigen Code können Sie die Einzelauswahl mit mehreren Textfeldern verwenden.
Glückliche Kodierung .. !!
funktioniert nicht zeigt Fehler @Nirrit Dagly –
können Sie mir bitte sagen, was ist der Fehler? –
Ich habe kleinere Änderungen am Code vorgenommen. Bitte versuchen Sie es mit diesem aktualisierten Code. –
- 1. IOS-Stapelansicht - Mehrere horizontale Textfelder
- 2. Mehrere Textfelder mit demselben Ereignis steuern Typ
- 3. Autocomplete-Extender für mehrere Textfelder mit Javascript
- 4. AS3 mehrere Textfelder leicht gemacht
- 5. iPhone - Suchfeld für mehrere Textfelder
- 6. So implementieren Sie die Einzelauswahl in RecyclerView?
- 7. Klicken Sie auf Ereignis für mehrere Textfelder
- 8. NSSegmentedControl mit blauer Farbe markiert und mit Einzelauswahl
- 9. Wiederverwendung eines Tooltips für mehrere Textfelder
- 10. Mehrere If-Else-Bedingungen in IOS
- 11. Jquery dynamisch hinzugefügt und entfernen mehrere Textfelder?
- 12. Füllen mehrere Textfelder aus Dropdown - CodeIgniter/PHP
- 13. mehrere Textfelder eins Wenn Anweisung .. Vb.net
- 14. Oracle-SQL Einzelauswahl, Kaskade nach Feld
- 15. So erstellen Sie zwei Textfelder in einer Alarmansicht, IOS
- 16. Interaktive Textfelder mit Fabric.js
- 17. Kann Textfelder vertikal in iOS nicht hinzugefügt werden?
- 18. dynamische Textfelder mit ‚Paging‘
- 19. So konvertieren Sie mehrere Textfelder in einen Wert
- 20. Bootstrap 3.0 mehrere Textfelder in horizontaler Form Problem
- 21. Wie wird empfangener serieller Text in mehrere Textfelder eingefügt?
- 22. Mehrere ausgewählte Zeilen aus Datagridview in Textfelder kopieren
- 23. Wie wählt man alle Textfelder und Textfelder mit jQuery?
- 24. CodeNameOne - Bibliotheksupdate brach Textfelder
- 25. In ExtJS Datenansicht Einzelauswahl Modus wie kann ich Artikelauswahl löschen
- 26. Tastenanschläge ohne Textfelder erkennen?
- 27. Validate Textfelder mit JQuery Validation
- 28. Wie JOptionPane mit drei Textfelder
- 29. Validierung mehrerer Textfelder mit Fehlerprovider
- 30. Dynamische Textfelder
haben Sie einen Blick auf http://stackoverflow.com/a/20741173/1371853 – swiftBoy
Textfeld Delegat Implementieren und Array von Picker reload Picker Ansicht ändern Ihr Problem –
jedes Detail Codierung @PKT –