Я хочу добавить или удалить префикс минус из текстового поля.Кнопка должна действовать как переключатель.
Я написал функцию, чтобы проверить, есть ли в текстовом поле знак минус.Если не добавить один.Если он уже есть, удалите его.
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()
.