UIBarButtonItem不能在UIToolBar中单击

我有一个UIPickerView ,我添加了2个UIBarButtonItems

 var toolBar = UIToolbar() toolBar.frame.origin.y = -40 toolBar.barStyle = UIBarStyle.Default toolBar.translucent = true toolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1) toolBar.sizeToFit() var doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Bordered, target: self, action: "donePicker") var spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil) var cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Bordered, target: self, action: "canclePicker") toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false) toolBar.userInteractionEnabled = true pickerView.addSubview(toolBar) pickerView.bringSubviewToFront(toolBar) view.bringSubviewToFront(toolBar) 

问题是,当我尝试点击UIBarButtonItem时,它不会触发,它甚至不能识别它,只是单击它下面的单元格。

在这里输入图像说明

你可以试试这个代码。

  var textField = UITextField(frame: CGRectMake(20, 50, view.width - 40, 30)) textField.backgroundColor = UIColor.redColor() view.addSubview(textField) var pickerView = UIPickerView(frame: CGRectMake(0, 200, view.width, 300)) pickerView.backgroundColor = UIColor.whiteColor() pickerView.showsSelectionIndicator = true var toolBar = UIToolbar() toolBar.barStyle = UIBarStyle.Default toolBar.translucent = true toolBar.tintColor = UIColor(red: 76/255, green: 217/255, blue: 100/255, alpha: 1) toolBar.sizeToFit() var doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Bordered, target: self, action: "donePicker") var spaceButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil) var cancelButton = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Bordered, target: self, action: "canclePicker") toolBar.setItems([cancelButton, spaceButton, doneButton], animated: false) toolBar.userInteractionEnabled = true textField.inputView = pickerView textField.inputAccessoryView = toolBar 

我相信你需要使用标准的UIResponder机制来提高select器和工具栏,或者使用隐藏的UITextField来获得相同的结果。

看到我原来的问题更新的答案:

将button添加到UIPickerView – Swift 1.2