我是初学者。我有一个名为display的UILabel。它只显示数字。它是一个计算器App。现在当我点击一个带有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。现在点击你的小数点按钮检查你的变量,如果它是真的你已经添加了一个小数点,如果是false则添加小数点并将变量设置为true。
如果您希望支持撤消最后一次点击,那么如果删除的字符是小数点,则将变量设置为false。
HTH