У меня есть UIPickerView
с добавленным к нему элементом UIToolBar
(кнопка Готово ). Но когда я выбираю кнопку, она должна что-то печатать на консоль через #selector(dismissKeyboard)
, но это не так.
Я относительно новичок в Swift и делаю все программно, поэтому мне просто трудно понять, почему я не могу взаимодействовать с кнопкой, добавленной в качестве подпредставления к моему pickerView
.
Вот соответствующий код, с которым я работаю ... Пожалуйста, дайте мне знать, если вам нужна дополнительная информация ...
Как сторона, я уже назначил делегата и источник данных для pickerView
, и я вызываю функцию createToolBar()
внутри viewDidLoad
.
var timerImage = UIButton()
var timer = Timer()
var timerDisplayed = 0
let image1 = UIImage(named: "stopwatch")
let timePicker = UIPickerView()
@objc func dismissKeyboard(){
print("PickerView Dismissed")
view.endEditing(true)
}
func pickerViewConstraints(){
timePicker.anchor(top: nil, leading: view.safeAreaLayoutGuide.leadingAnchor, bottom: view.safeAreaLayoutGuide.bottomAnchor, trailing: view.safeAreaLayoutGuide.trailingAnchor)
}
func createToolBar(){
let doneButton = UIBarButtonItem(title: "Done", style: .plain, target: self, action: #selector(dismissKeyboard))
let toolBar = UIToolbar(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height))
toolBar.sizeToFit()
toolBar.setItems([doneButton], animated: true)
toolBar.isTranslucent = false
toolBar.isUserInteractionEnabled = true
timePicker.addSubview(toolBar)
self.view.bringSubviewToFront(toolBar)
}
@objc func timeClock(){
view.addSubview(timePicker)
pickerViewConstraints()
timePicker.backgroundColor = .white
DispatchQueue.main.async {
self.timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(self.Action), userInfo: nil, repeats: true)
self.timerImage.setImage(nil, for: .normal)
}
}