Programmgesteuert Erstellen und Zeigen UIPickerView

Ich bin versucht, erstellen Sie eine UIPickerView programmatisch und zeigt Sie als firstResponder einer textfield-Instanz, aber der picker-Ansicht nicht angezeigt. textField verbunden ist, um ein Objekt im interface builder, aber pickerView erstellt wird programmgesteuert.

class View: UIViewController {
    @IBOutlet var picker : UIPickerView = UIPickerView.alloc()
    @IBOutlet var textField : UITextField = nil
    override func viewDidLoad() {
        super.viewDidLoad()
        picker = UIPickerView()
        picker.delegate = self
        picker.dataSource = self
        picker.backgroundColor = UIColor.blackColor()
        textField.inputView = picker
    }
}
extension View: UIPickerViewDataSource {

    func numberOfComponentsInPickerView(colorPicker: UIPickerView!) -> Int {
        return 1
    }

    func pickerView(pickerView: UIPickerView!, numberOfRowsInComponent component: Int) -> Int {
        return 5
    }
}

extension View: UIPickerViewDelegate {

    func pickerView(pickerView: UIPickerView!, titleForRow row: Int, forComponent component: Int) -> String!
    {
        return "Text"
    }
}

Warum kann ich nicht sehen, diese pickerView wenn ich die app starte?

Bearbeiten: Hinzufügen einen Haltepunkt in die Erweiterungen nicht aufhören, Sie sind nicht genannt.

In Ihrem viewDidLoad ändern var picker : UIPickerView = ... zu picker = .... Sie erstellen eine lokale (und temporäre) picker.
Ich bin jetzt immer drei Fehler in dieser Zeile: Aufeinanderfolgende Anweisungen in einer Zeile, getrennt durch ';', Erwartet Ausdruck, und der Ausdruck wird zu einer unbenutzten l-Wert
Und wenn ich entfernen, die Zeile bekomme ich einen fatalen Fehler zur Laufzeit: Kann nicht entfernen Sie optional.keiner
UIPickerView.alloc() ist jetzt veraltet, verwenden Sie einfach UIPickerView() statt
Beide können programmgesteuert erstellt werden. Hier ist ein gut dokumentierte Beispiel in Objective C.

InformationsquelleAutor trumpeter201 | 2014-07-19

Schreibe einen Kommentar