在swift中单击按钮时显示十进制数字

问题描述 投票:0回答:3

我是初学者。我有一个名为display的UILabel。它只显示数字。它是一个计算器App。现在当我点击一个带有currentTitle的按钮时“。”我想在显示的现有数字上插入一个点。让我们说“。”这是现在的数字“78”。被拍了我想要它是“78”。我知道怎么做但我不知道如何检查UILabel中是否已经有一个小数点,所以基于我想在屏幕上显示。

ios swift
3个回答
1
投票

去检查 ”。”是否存在于YOUR_UILABEL

if self.YOUR_UILABEL.text.contains(".") {
    // "." present
} else {
    // "." Not present
}

希望对你有帮助


0
投票

只是一个简短的提示:

你的textField对象符合UITextInputTraits,所以假设你有一个名为textField(UITextField的实例)的var设置为:

 textfield.keyboardType = .decimalPad
 textfield.semanticContentAttribute = .forceRightToLeft

这会像你想要的那样从右到左强制执行文本方向(计算器示例对吗?)

然后指派代表正确检测标点符号:

textfield.delegate = self

然后在您的视图控制器上实现:

  func textField(_ textField: UITextField, shouldChangeCharactersIn
        range: NSRange, replacementString string: String) -> Bool {

        let punctuationSign = textfield.text?.contains(".")

        if punctuationSign == true && string == "." {
            return false
        }
       return true
    }

干杯。


0
投票

您无需执行任何复杂的操作来跟踪小数点。将布尔变量添加到类/结构或全局,例如decimalPointAdded并将其初始化为false。现在点击你的小数点按钮检查你的变量,如果它是真的你已经添加了一个小数点,如果是false则添加小数点并将变量设置为true。

如果您希望支持撤消最后一次点击,那么如果删除的字符是小数点,则将变量设置为false。

HTH

© www.soinside.com 2019 - 2024. All rights reserved.