2013-01-30 15 views
12

Grundsätzlich möchte ich, dass der Benutzer in das Textfeld klickt, und es wird statt einer Tastatur ein ausgefülltes Auswahlfenster angezeigt. Dies würde auch eine Symbolleiste mit einem fertigen Button sowie Im voraussetzen. Ich habe derzeit das Feld als eine Ausgabe und Aktion und nicht viel mehr. Ich habe auch ein Aktionsblatt in Code, das verwendet wird, wenn der Benutzer auch etwas einreicht, wenn das einen Unterschied macht, möglicherweise auch ein Aktionsblatt dafür zu verwenden.Ein UIPickerviewer anstelle einer Tastatureingabe aufrufen iOS

Ich habe versucht, dieses Thema zu erforschen, aber 99% der Themen waren mit datepickers eher als Pickerviews (oder sehr alten Code). Ich bin auch ziemlich neu in iOS und bin so mit mir allein.

Hier ist ein Bild von dem, was es als Referenz aussieht.

Antwort

32

UITextField hat jetzt eine inputView Eigenschaft. Hier können Sie ihm eine Anzeige zuweisen, die Sie möchten, einschließlich eines UIPickerView. Sie müssen die picker Setup aber und muss UITextFieldDelegate und UIPickerViewDataSource in Ihrer .h implementieren:

@interface ViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate> 

den Picker Ansicht Dann erstellen und in das Textfeld zuweisen.

UIPickerView *pickerView = [[UIPickerView alloc] init]; 
pickerView.dataSource = self; 
pickerView.delegate = self; 
// ... ... 
self.pickerTextField.inputView = pickerView; 

Da Sie die UIPickerView Schnittstellen implementiert müssen Sie nun diese Methoden implementieren:

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component; 
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView; 
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component; 

Sie sollten dann gut zu gehen. Weitere Informationen finden Sie in der Dokumentation zu anderen Methoden.

+0

Würde ich nur diese Eigenschaft in der Textfeld Aktion Aktion bearbeiten? – JohnV

+0

Ich würde es wahrscheinlich in der ViewDidLoad für den ViewController tun. Es macht keinen Sinn, sie bei jedem Drücken der Taste einzustellen, es sei denn, Sie wechseln zwischen einem UIPicker und einer normalen Tastatur. – Firo

+0

Es scheint zu funktionieren. Es bringt eine Blackbox und nicht die Tastatur zum Vorschein. Ich weiß nicht, wie ich das auffüllen würde oder eine Toolbar hinzufügen würde, um nach dem Ergebnis zu suchen. Irgendwelche Ideen? Ich habe die NSArray gemacht, aber ich weiß nicht, wie man es mit ihr verbindet, da es nicht wirklich eine Sache ist. – JohnV