用自定义视图替换UIBarButtonItem

时间:2019-07-07 06:11:08

标签: ios swift uiimageview uibarbuttonitem

找到了这段代码,将“ Done”按钮插入了十进制键盘,只要我不像下面这段代码那样对按钮使用自定义视图,它就可以工作:

extension UITextField {
    func makeKeyboardToolBar(title: String) {
        let keyboardToolBar = UIToolbar()
        keyboardToolBar.sizeToFit()

        let flexibleSpace = UIBarButtonItem(barButtonSystemItem:
            UIBarButtonItem.SystemItem.flexibleSpace, target: nil, action: nil)

        let bimage = UIImageView(image: UIImage(named: "icon_plus_50"))

        let doneButton = UIBarButtonItem(title: title, style: UIBarButtonItem.Style.done,  target: self, action: #selector(self.doneClicked))

        doneButton.customView = bimage

        keyboardToolBar.setItems([flexibleSpace, doneButton], animated: true)

        self.inputAccessoryView = keyboardToolBar
    }

    @objc func doneClicked() {
        self.endEditing(true)
    }
}

图像出现,但没有反应。请勿设置自定义视图,而是显示“ title”,并在适当时完成doneClicked响应。 有类似的问题,但很不高兴。客观... 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

请勿创建或使用UIImageView。只需使用图片创建UIBarButtonItem

let doneButton = UIBarButtonItem(image: UIImage(named: "icon_plus_50"), style: .plain, target: self, action: #selector(doneClicked))

无需设置customView