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
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
Beide können programmgesteuert erstellt werden. Hier ist ein gut dokumentierte Beispiel in Objective C.
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()
stattBeide können programmgesteuert erstellt werden. Hier ist ein gut dokumentierte Beispiel in Objective C.
InformationsquelleAutor trumpeter201 | 2014-07-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe das problem gefunden-der code für die Zuordnung der input-Ansicht nicht enthalten selbst. Es sollte Lesen
InformationsquelleAutor trumpeter201
Ich hatte das gleiche problem, die versuchen, um die Farbauswahl anzuzeigen, zu zeigen, klickt man in das textfield. Mein Problem war, dass für einige Grund meine iOS-simulator hatten die "Connect-Hardware-Tastatur" aktiviert ist. In der iOS-Menü gehen Sie zu Hardware -> Tastatur und stellen Sie sicher, "Schließen Sie die Hardware-Tastatur" nicht aktiviert ist. Fühlt sich dumm jetzt nicht zu bemerken Tastatur wurde aufspringen in der app für mehrere Stunden, aber hoffentlich wird dies helfen, sparen Sie jemand anderes die frustration.
Wollte nur hinzufügen, ein edit: In dem iOS-simulator können Sie versuchen, ein-und ausschalten der software-Tastatur (Befehl+K) Dies war für mich auch in diesem Fall und erlaubt mir, um die hardware-Tastatur angeschlossen. Nur etwas zu schnell überprüfen, bevor Sie vorausgesetzt, dass Ihr code falsch ist.
InformationsquelleAutor Jason Wiles
Ich bin nicht sicher, warum Sie nicht sehen können die picker. Aber es ist ein falscher Weg.
Erstellen einer Instanz mithilfe:
Swift:
sollten Sie verwenden:
InformationsquelleAutor Louis Zhu