繁体   English   中英

快速单击按钮时显示小数

[英]Displaying decimal numbers when button is clicked in swift

我是初学者。 我有一个名为display的UILabel。 它只显示数字。 它是一个计算器应用程序。 现在,当我单击带有currentTitle“”的按钮时。 我想在显示的现有数字上插入一个点。 假设这是数字“ 78”。 我想将其设置为“ 78”。 我知道如何执行此操作,但是我不知道如何检查UILabel中是否已经存在小数点,因此基于该原因我想在屏幕上显示。

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

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

希望这个能对您有所帮助

提示:

您的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
    }

干杯。

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

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

HTH

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM