Mac Catalyst 是否支持 UITextField+UIPickerView?

Ele*_*nny 7 uipickerview uitextfield mac-catalyst

在我的 iOS 应用程序中,我有一个带有选择器视图的文本字段分配给它的 inputView。在 iOS 设备上,只要用户点击文本字段,就会弹出选择器视图。但是,当我将它作为 Mac/Catalyst 应用程序运行时,相同的代码不会这样做。到目前为止,我的调试工作表明根本没有调用选择器视图方法,所以如果 Mac 需要额外的文本字段委托方法来将焦点从 Mac 的键盘上移开?知道如何在 Mac 上进行这项工作吗?准系统示例代码如下。

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]
}
}
Run Code Online (Sandbox Code Playgroud)

小智 4

它看起来像是 Mac Catalyst 中的一个错误。尝试使用UIPicker嵌入在UIActionSheet. ActionSheetPicker-3.0是一个现成的解决方案。显示您ActionSheetPicker的.textFieldDidBeginEditingUITextField