[英]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.