以编程方式创build并显示UIPickerView

我试图以编程方式创build一个UIPickerView并将其显示为textfield的firstResponder,但是,选取器视图不显示。 textField连接到界面生成器中的对象,但是pickerView正在以编程方式创build。

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" } } 

为什么我运行应用程序时看不到这个pickerView?

编辑:在扩展中添加断点不会停止程序,它们不会被调用。

我发现问题 – 分配input视图的代码不包含self。 它应该阅读

 self.textField.inputView = picker 

我有同样的问题试图让点击视图显示在文本框中单击时。 我的问题是,由于某种原因,我的iOS模拟器有“连接硬件键盘”选中。 在iOS菜单中,进入硬件 – >键盘,并确保“连接硬件键盘”未选中。 觉得哑巴现在不知道任何键盘在应用程序popup了几个小时,但希望这将有助于拯救别人的挫折。

只是想添加一个编辑:在iOS模拟器中,您可以尝试切换软件键盘(命令+ K)在这种情况下,这也适用于我,并允许我保持硬件键盘连接。 只是在假设您的代码不正确之前快速检查一下。

我不知道为什么你不能看到select器。 但这是一个错误的方式。

要使用以下命令创build实例:

  picker = UIPickerView.alloc() 

在Swift中:

你应该使用:

 picker = UIPickerView()