замена UIBarButtonItem на пользовательский вид - PullRequest
0 голосов
/ 07 июля 2019

Найден этот код для вставки кнопки «Готово» в десятичную клавиатуру, и она работает до тех пор, пока я не использую пользовательское представление для кнопки, как в этом фрагменте кода:

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)
    }
}

Изображение появляется, но не реагирует. Не устанавливайте пользовательский вид работ вместо этого, появляется «заголовок» и готовый щелчок отклика при необходимости. Есть похожие вопросы, но неудобства. Objective-C ... Любую помощь оцените.

1 Ответ

1 голос
/ 07 июля 2019

Не создавайте и не используйте UIImageView. Просто создайте UIBarButtonItem с изображением.

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

Нет необходимости устанавливать customView.

...