UIBarButtonItem is not available for clicks in UIToolBar

I have a UIPickerView and I add a UIToolBar to it with 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) 

The problem is that when I try to click on the UIBarButtonItem, it does not work, it does not even recognize it, it just clicks on the cell below it.

enter image description here

+2
source share
2 answers

Can you try these codes.

  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 
+3
source

I believe that you need to raise the collector and toolbar using the standard UIResponder mechanism or trick using the hidden UITextField to get the same result.

See my updated answer to your original question:

Add Buttons to UIPickerView - Swift 1.2

+1
source

Source: https://habr.com/ru/post/982992/


All Articles