在swift

时间:2018-03-01 15:02:32

标签: ios swift

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

3 个答案:

答案 0 :(得分:1)

检查"。"存在于YOUR_UILABEL或不存在

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

希望这会对你有所帮助

答案 1 :(得分:0)

只是一个简短的提示:

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

 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
    }

干杯。

答案 2 :(得分:0)

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

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

HTH