Как показать кнопку «Готово» на клавиатуре с десятичной панелью? - PullRequest
1 голос
/ 21 апреля 2020

Я пытаюсь изучить Swift, и я сделал на экранах просмотра. Но, как вы можете легко понять, проверив снимок экрана, при вводе значения в текстовое поле не появляется никакой кнопки «Готово», поэтому я не могу скрыть клавиатуру от экрана. И это делает невозможным нажатие кнопки отправки, расположенной внизу экрана.

screenshoot while the keyboard is being shown

screenshoot while the keyboard is closed

Ответы [ 2 ]

2 голосов
/ 21 апреля 2020

Вы можете добавить панель инструментов в качестве входного аксессуара:

     let toolBar = UIToolbar()
     toolBar.sizeToFit()
     let button = UIBarButtonItem(title: "Done", style: .plain, target: self, 
                                      action: #selector(dismiss))
     toolBar.setItems([button], animated: true)
     toolBar.isUserInteractionEnabled = true
     textField.inputAccessoryView = toolBar

Также вам нужно добавить метод dismiss:

@objc func dismiss() {
   view.endEditing(true)
 }
0 голосов
/ 21 апреля 2020

Сначала создайте новый Swift File. Добавьте это в файл:

import Foundation
import UIKit

extension UIViewController{
    func toolBar() -> UIToolbar{
        let toolBar = UIToolbar()
        toolBar.barStyle = .default
        toolBar.isTranslucent = true
        toolBar.barTintColor = UIColor.init(red: 0/255, green: 25/255, blue: 61/255, alpha: 1) //Write what you want for color
        let space = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
        var buttonTitle = "Done" //Or "Tamam"
        var cancelButtonTitle = "Cancel" //Or "İptal" for Turkish
        let doneButton = UIBarButtonItem(title: buttonTitle, style: .done, target: self, action: #selector(onClickDoneButton))
        let cancelButton = UIBarButtonItem(title: cancelButtonTitle, style: .plain, target: self, action: #selector(onClickCancelButton))
        doneButton.tintColor = .white
        cancelButton.tintColor = .white
        toolBar.setItems([cancelButton, space, doneButton], animated: false)
        toolBar.isUserInteractionEnabled = true
        toolBar.sizeToFit()
        return toolBar
    }

    @objc func onClickDoneButton(){
        view.endEditing(true)
    }

    @objc func onClickCancelButton(){
        view.endEditing(true)
    }
}

И добавьте это toolbar к вашему textfield:

yourTextField.inputAccessoryView = toolBar()

Надеюсь, это поможет ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...