2013-01-30 8 views
12

Fondamentalmente vorrei che l'utente faccia clic nel campo di testo e visualizzasse un pick-up popolato anziché una tastiera. Ciò richiederebbe anche una barra degli strumenti con un pulsante eseguito, come suppongo. Al momento ho impostato il campo come output e azione e non molto di più. Ho anche un foglio di lavoro nel codice utilizzato per quando l'utente invia qualcosa anche se questo fa alcuna differenza nel possedere eventualmente un foglio di azione anche per questo.Visualizzazione di un UIPickerview anziché input da tastiera iOS

Ho provato a cercare questo argomento ma il 99% degli argomenti era con datepickers anziché pickitiews (o codice molto vecchio). Sono abbastanza nuovo anche per iOS così nudo con me.

Ecco un'immagine di come appare come riferimento.

risposta

32

UITextField ora ha una proprietà inputView. Qui puoi assegnargli un display che desideri includere un UIPickerView. È necessario impostare il pickerView e anche se deve implementare UITextFieldDelegate e UIPickerViewDataSource nel .h:

@interface ViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate> 

quindi creare il selettore vista e assegnare al campo di testo.

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

Perché implementato le interfacce UIPickerView ora è necessario implementare questi metodi:

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

Si dovrebbe quindi essere pronti per partire. Consulta la documentazione per altri metodi se hai bisogno di maggiori informazioni.

+0

Dovrei semplicemente modificare questa proprietà nel metodo di azione premuto campo di testo? – JohnV

+0

Probabilmente lo farei nel viewDidLoad per ViewController. Non ha davvero senso impostarlo ogni volta che si preme il pulsante, a meno che non si passi da UIPicker a una normale tastiera. – Firo

+0

Sembra funzionare. Mostra una scatola nera piuttosto che la tastiera. Non so come andrei a popolare questo o aggiungendo una barra degli strumenti per controllare se fatto. Qualche idea? Ho creato il NSArray ma non so come collegarlo perché non è davvero una cosa creata. – JohnV