Как добавить или удалить знак «минус» с префиксом в текстовом поле? - PullRequest
0 голосов
/ 03 апреля 2019

Я хочу добавить или удалить префикс минус из текстового поля.Кнопка должна действовать как переключатель.

Я написал функцию, чтобы проверить, есть ли в текстовом поле знак минус.Если не добавить один.Если он уже есть, удалите его.

protocol KeyboardDelegate {
    func toggleMinus(_ character: String)
}

class KeyboardViewController: UIInputViewController {


    var delegate: KeyboardDelegate?

    override func updateViewConstraints() {
        super.updateViewConstraints()

        // Add custom view sizing constraints here
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        let nib = UINib(nibName: "NumpadView", bundle: nil)
        let objects = nib.instantiate(withOwner: self, options: nil)

        view = objects[0] as! UIView

        // Perform custom UI setup here
    }
       // Toggle minus button action function of custom keyboard
       @IBAction func negateButtonPressed(_ sender: UIButton) {
        var string = sender.titleLabel?.text
        self.delegate?.toggleMinus(string!)
    }

}
class TemperatureViewController: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var textCelcius: UITextField!
    @IBOutlet weak var textFahrenheit: UITextField!
    @IBOutlet weak var textKelvin: UITextField!


    override func viewDidLoad() {
        super.viewDidLoad()

        textCelcius.delegate = self
        textFahrenheit.delegate = self
        textKelvin.delegate = self
    }

    func toggleMinus(_ character: String) {
        if var text = textCelcius.text , text.isEmpty == false{
            textCelcius.insertText(character)

            if text.hasPrefix("-") {
                text = text.replacingOccurrences(of: "-", with: "")
            } else {
                text = "-\(text)"
            }

            textCelcius.text = text
        }
    }
}

Я хочу, чтобы значение префикса текстового поля изменилось на знак минуса или удалило его, если оно уже есть, когда пользователь нажимает кнопку напользовательская клавиатура.Прямо сейчас, когда я нажимаю кнопку на клавиатуре, ничего не происходит.Я думаю, что я не вызвал функцию toggleMinus() в TemperatureViewController должным образом из класса KeyboardViewController, или есть логическая ошибка в функции toggleMinus().

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