【发布时间】:2020-05-07 20:49:37
【问题描述】:
我有一个UIPickerView,其中添加了一个UIToolBar 项目(完成 按钮)。但是当我选择按钮时,它应该通过#selector(dismissKeyboard) 向控制台打印一些东西,但它没有。
我对 Swift 比较陌生,而且我正在以编程方式做所有事情,所以我很难弄清楚为什么我无法与作为子视图添加到我的 pickerView 的按钮进行交互。
这是我正在使用的相关代码...如果您需要更多信息,请告诉我...
另一方面,我已经为pickerView 分配了委托和数据源,并在viewDidLoad 中调用了createToolBar() 函数。
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)
}
}
【问题讨论】:
-
我意识到的其他事情,当我尝试将工具栏的背景颜色更改为蓝色时,颜色不会改变。我猜这个问题与重叠视图有关......
标签: swift xcode button uipickerview toolbar