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