Guten Tag,
bin gerade dabei, meine erste kleine App zu erstellen, also noch relativ am Anfang mit Swift
Ich möchte einen Picker durch das klicken auf ein Textfield erstellen. Das klappt soweit auch, leider übernimmt das Textfield nur den Text aus dem Picker nicht. Wäre super wenn jemand aus dem Forum mir weiterhelfen könnte!
Hier der Code:
import UIKit
class JobErstellenViewController: UIViewController, UITextFieldDelegate {
@IBOutlet var jobAuswählenTextField: UITextField!
var jobKategorien = ["Haus und Garten", "Betreuung", "Sonstiges"]
var selectedJob: String?
override func viewDidLoad() {
super.viewDidLoad()
createPickerView()
createJobToolBar()
}
//Folgendes für die Erstellung des PickerViews
func createPickerView() {
let jobPicker = UIPickerView()
jobPicker.delegate = self
jobPicker.dataSource = self
jobAuswählenTextField.inputView = jobPicker
}
//Folgendes für die Verbidung des PickerViws mit den angegebenen Daten
extension JobErstellenViewController: UIPickerViewDelegate, UIPickerViewDataSource {
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return jobKategorien.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return jobKategorien[row]
}
func pickerView(_pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
jobAuswählenTextField.text = jobKategorien[row]
self.view.endEditing(false)
}
//Folgendes für die Erstellung der Toolbar
func createJobToolBar() {
let jobToolBar = UIToolbar()
jobToolBar.sizeToFit()
//Costumisazions
jobToolBar.barTintColor = .gray
jobToolBar.tintColor = .white
let jobDoneButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(RegistrationViewController.dismissKeyboard))
jobToolBar.setItems([jobDoneButton], animated: false)
jobToolBar.isUserInteractionEnabled = true
jobAuswählenTextField.inputAccessoryView = jobToolBar
}
@objc func dismissKeyboard() {
view.endEditing(true)
}
}
Vielen Dank im voraus und ein schönes Wochenende, Tom
bin gerade dabei, meine erste kleine App zu erstellen, also noch relativ am Anfang mit Swift
Ich möchte einen Picker durch das klicken auf ein Textfield erstellen. Das klappt soweit auch, leider übernimmt das Textfield nur den Text aus dem Picker nicht. Wäre super wenn jemand aus dem Forum mir weiterhelfen könnte!
Hier der Code:
import UIKit
class JobErstellenViewController: UIViewController, UITextFieldDelegate {
@IBOutlet var jobAuswählenTextField: UITextField!
var jobKategorien = ["Haus und Garten", "Betreuung", "Sonstiges"]
var selectedJob: String?
override func viewDidLoad() {
super.viewDidLoad()
createPickerView()
createJobToolBar()
}
//Folgendes für die Erstellung des PickerViews
func createPickerView() {
let jobPicker = UIPickerView()
jobPicker.delegate = self
jobPicker.dataSource = self
jobAuswählenTextField.inputView = jobPicker
}
//Folgendes für die Verbidung des PickerViws mit den angegebenen Daten
extension JobErstellenViewController: UIPickerViewDelegate, UIPickerViewDataSource {
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return jobKategorien.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return jobKategorien[row]
}
func pickerView(_pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
jobAuswählenTextField.text = jobKategorien[row]
self.view.endEditing(false)
}
//Folgendes für die Erstellung der Toolbar
func createJobToolBar() {
let jobToolBar = UIToolbar()
jobToolBar.sizeToFit()
//Costumisazions
jobToolBar.barTintColor = .gray
jobToolBar.tintColor = .white
let jobDoneButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(RegistrationViewController.dismissKeyboard))
jobToolBar.setItems([jobDoneButton], animated: false)
jobToolBar.isUserInteractionEnabled = true
jobAuswählenTextField.inputAccessoryView = jobToolBar
}
@objc func dismissKeyboard() {
view.endEditing(true)
}
}
Vielen Dank im voraus und ein schönes Wochenende, Tom