В моем приложении iOS у меня есть текстовое поле с представлением выбора, назначенным для его inputView. На устройствах iOS окно выбора появляется при каждом нажатии пользователем текстового поля. Однако тот же код не делает этого, когда я запускаю его как приложение Mac / Catalyst. Мои попытки отладки пока показывают, что методы представления средства выбора вообще не вызываются, поэтому, если Ma c требует дополнительных методов делегирования текстового поля, чтобы отвлечь внимание от клавиатуры Ma c? Есть идеи, как заставить это работать на Ма c? Пример кода для barebones приведен ниже.
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource, UITextFieldDelegate {
@IBOutlet weak var myTextField: UITextField!
var myPickerView : UIPickerView!
var pickerData = ["Alpha" , "Bravo" , "Charlie" , "Delta"]
override func viewDidLoad() {
super.viewDidLoad()
self.myPickerView = UIPickerView(frame:CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 300))
self.myPickerView.delegate = self
self.myPickerView.dataSource = self
self.myTextField.delegate = self
self.myTextField.inputView = self.myPickerView
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return pickerData.count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return pickerData[row]
}
}