例:テキストボックスtxtPlayerをクリックすると、UIPickerViewが表示される。「完了」ボタンを押すと選択された内容がテキストボックスに表示される。
class PlayerViewController: UIViewController { @IBOutlet var txtPlayer: UITextField! let pickerView = UIPickerView() let players = ["Mark", "Peter", "Jack"] override func viewDidLoad() { super.viewDidLoad() // set pickerView pickerView.delegate = self pickerView.dataSource = self let toolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: view.frame.size.width, height: 35)) let spacelItem = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: self, action: nil) let doneItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(afterPickPlayer)) toolbar.setItems([spacelItem, doneItem], animated: true) txtPlayer.inputView = pickerView txtPlayer.inputAccessoryView = toolbar } @objc func afterPickPlayer() { txtPlayer.endEditing(true) txtPlayer.text = "\(players[pickerView.selectedRow(inComponent: 0)].name)" } } extension PlayerViewController: UIPickerViewDelegate, UIPickerViewDataSource { func numberOfComponents(in pickerView: UIPickerView) -> Int { return 1 } func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { return players.count } func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { return players[row].name } }