gpt4 book ai didi

ios - 将用户输入限制为 Swift 中的有效十进制数

转载 作者:IT王子 更新时间:2023-10-29 05:24:39 25 4
gpt4 key购买 nike

我已经找到了很多关于如何在 objective-c 中执行此操作的指南,但我希望看到一种更面向 Swift 的方法来执行此操作。

我有一个 UITextField,用户可以在其中输入货币价格。文本字段调用小数点键盘。然而,在 iPad 上,出现的键盘有一大堆非十进制符号。

基本上,对于每一次按键操作,我都希望在该字段中输入非数字或任何超出一位小数的内容。如果输入小数点,我想输入第二个小数点是不可能的。如果小数点被删除,我想确保用户可以再次输入小数点。

关于如何在 swift 中正确执行此操作的任何想法?

我还看到了类似此处发布的解决方案: Limit UITextField to one decimal point Swift但是我不知道在哪里放置这些函数或者我应该如何调用它们。每当我尝试在参数中放入 NSRange 时,我都会收到一条错误消息,指出我没有正确创建范围。

最佳答案

这是一个简单的例子:

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

@IBOutlet weak var textField: UITextField!

override func viewDidLoad() {
super.viewDidLoad()

self.textField.delegate = self

}

//Textfield delegates
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool { // return NO to not change text

switch string {
case "0","1","2","3","4","5","6","7","8","9":
return true
case ".":
let array = Array(textField.text)
var decimalCount = 0
for character in array {
if character == "." {
decimalCount++
}
}

if decimalCount == 1 {
return false
} else {
return true
}
default:
let array = Array(string)
if array.count == 0 {
return true
}
return false
}
}
}

关于ios - 将用户输入限制为 Swift 中的有效十进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26566844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com