2012-12-13 11 views
6

IWie ein UIPickerView verstecken, wenn der Benutzer seine Wahl

UIPickerView *picker =[[UIPickerView alloc] initWithFrame:CGRectMake(139,50,161,30)]; 
    picker.delegate=self; 
    picker.showsSelectionIndicator=YES; 
    picker.hidden=NO; 

    [self.view addSubview:picker]; 

nun eine benutzerdefinierte UIPickerView mit dem folgenden Code erstellt habe ich die picker ausblenden möge, wenn der Benutzer seine Wahl einer Reihe einfach machen mit

picker.hidden=YES; 

Jetzt: 1) Wie kann ich die Wahl des Benutzers erkennen und dann verstecken die unuseful picker? 2) Kann ich die Auswahl in einem TextField anzeigen? mit @ "Wahl"?

Antwort

4

Ich benutze ein UIPickerView als Eingabeansicht für ein TextField (damit ersetzt die Bildschirmtastatur). Ich verwende den folgenden Delegaten, um die Ansicht zu schließen.

#pragma mark - UIPickerViewDelegate 
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { 
    // Code logic 
    [[self view] endEditing:YES]; 
} 
2

diese Zeile hinzufügen, wo Sie Picker auf sie

picker.delegate = self; 

Ihr Rückruf

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { 
    picker.hidden=YES; 
} 
+0

Wenn ich diese Zeile hinzufügen: keine sichtbaren @interface für "UIPickerView" deklariert den Selektor "addTarget: action ... 'Ich habe den Picker in einer Funktion deklariert. Wie kann ich lösen? – TheInterestedOne

+0

Ich habe Picker deklariert das .h als uipickerview und entferne es von der Funktion, um die Istinvariable nicht zu verbergen, die in .h deklariert wird, aber das Problem bleibt – TheInterestedOne

+0

@AlessandroBava Sorry war verwirrt mit date picker. Bearbeitet –

0

Sie verwenden UINavigationBar und Barbutton mit Stempel und Fertig Text erstellt haben.

können Sie beziehen sich auf den folgenden Link

Objective C implementing a UIPickerView with a "Done" button

+0

Nein, ich möchte keine Schaltflächen zu meiner Ansicht hinzufügen Ich möchte automatisch ausblenden, wenn der Benutzer seine Wahl trifft :) – TheInterestedOne

+0

Wie erkennen Sie, ob der Benutzer die richtige Auswahl ausgewählt hat oder nicht? –

+0

nur zweimal tippen Sie auf die ausgewählte Zeile – TheInterestedOne

2

die delegierte Methode von UIPickerView wie unten verwenden ..

- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { 

     yourTextField.text = [yourArray objectAtIndex:row]; 
     thePickerView.hidden = YES; 

    } 

auch Sie ein UIButton und verstecken diese mit Wirkung Fall UIButton nehmen .

0

UIView * addMealView; // hier zeige ich meine Picker

- (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:(NSInteger)component 
{ 
[addMealView endEditing:YES]; 
} 
0

Ich bin für eine TextField- eine UIPickerView als inputView mit (für die Standardtastatur ersetzen). Ich benutze den ResignFirstResponder (TextField-Methode), um die Ansicht zu schließen.