8 Stimmen

UIPickerView auswählen und ausblenden

Wie lässt sich ein UIPickerView so verhalten wie derjenige mit einem Webview, bei dem es eine Dropdown-Auswahlliste gibt und anstatt wie üblich auf Websites nach unten zu klappen, macht das iPhone daraus einen UIPickerView mit allen Auswahlmöglichkeiten. Wenn man eine auswählt, erscheint ein Häkchen neben der Auswahl und ändert den Wert der Auswahlliste. Und wie fügt man die Schaltfläche "Fertig" oben auf dem UIPickerView ein, um den UIPickerView auszublenden?

Ich weiß bereits, dass [pickerview setHidden:YES] die Methode ist, um den Pickerview auszublenden. Ich weiß nur nicht, wie man die "Fertig"-Schaltfläche in den UIPickerView einbezieht.

Mit freundlichen Grüßen, Chris

34voto

Jacob T. Punkte 358

Dieses Stück Code blendet eine Picker-Ansicht als Tastatur aus und fügt oben ein "Fertig"-Button hinzu. Im Grunde möchten Sie einem Eingabefeld eine inputAccessoryView zuweisen. Sie sollten diese Methode bei einem Touch-Event für Ihr Eingabefeld aufrufen.

- (IBAction)zeigeDeinenPicker:(id)sender {

// Erstelle eine UIPicker-Ansicht als benutzerdefinierte Tastaturansicht
UIPickerView* pickerView = [[UIPickerView alloc] init];
[pickerView sizeToFit];
pickerView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
pickerView.delegate = self;
pickerView.dataSource = self;
pickerView.showsSelectionIndicator = YES;
self.deinePickerAnsicht = pickerView;  //UIPickerView

deinTextField.inputView = pickerView;

// Erstelle eine Ansicht für "Fertig" + Fertig-Button, weise ihm eine doneClicked-Aktion zu und platziere ihn in einer Symbolleiste als Eingabezubehöransicht...
// Bereite den Fertig-Button vor
UIToolbar* keyboardDoneButtonView = [[UIToolbar alloc] init];
keyboardDoneButtonView.barStyle = UIBarStyleBlack;
keyboardDoneButtonView.translucent = YES;
keyboardDoneButtonView.tintColor = nil;
[keyboardDoneButtonView sizeToFit];

UIBarButtonItem* doneButton = [[[UIBarButtonItem alloc] initWithTitle:@"Fertig"
    style:UIBarButtonItemStyleBordered target:self
    action:@selector(pickerDoneClicked:)] autorelease];

[keyboardDoneButtonView setItems:[NSArray arrayWithObjects:doneButton, nil]];

// Füge die keyboardDoneButtonView dem Textfeld hinzu...
deinTextField.inputAccessoryView = keyboardDoneButtonView;  

[pickerView release];
[keyboardDoneButtonView release];
}

Zuletzt ruft Ihr "Fertig"-Button die Methode "pickerDoneClicked" auf, in der Sie [deinTextField resignFirstResponder]; hinzufügen sollten, um die Picker-Ansicht auszublenden.

6voto

Die Schaltfläche "Fertig" befindet sich in der UIToolBar.

Verwenden Sie die folgende Methode von UIToolBar, um die "Fertig"-Schaltflächen hinzuzufügen.

- (void)setItems:(NSArray *)items animated:(BOOL)animated {

    UIToolbar*  mypickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 56)];
    mypickerToolbar.barStyle = UIBarStyleBlackOpaque;
    [mypickerToolbar sizeToFit];

    NSMutableArray *barItems = [[NSMutableArray alloc] init()];

    UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
    [barItems addObject:flexSpace];

    UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(DatePickerDoneClick)];
    [barItems addObject:doneBtn];

    [mypickerToolbar setItems:barItems animated:YES];

}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X