ios - 将默认 UITextField 值设置为 0(计算器)

标签 ios swift xcode uitextfield

我正在制作一个应用程序,其中一部分具有某种计算器功能。

用户有 4 个 UITextField,他们可以在其中输入数字,所有这些都应该是可选的 - 但如果它们被留为,它应该表现得好像他们已经输入了“0”进入该领域。 我该如何设置这个默认值 0?

当前设置为 UITextField 中的初始值为 0,但这可以由用户删除(呈现错误),并且不允许占位符文本。

最佳答案

您已将 textField 的默认值设置为“0”

textField.text = "0"

现在您需要检查用户是否更改了 textField 以及更改是否导致了一个文本字段。

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    guard let textFieldString = textField.text, let range = Range(range, in: textFieldString) else {
        return false
    }
    let newString = textFieldString.replacingCharacters(in: range, with: string)
    if newString.isEmpty {
        textField.text = "0"
        return false
    } else if textField.text == "0" {
        textField.text = string
        return false
    }
    return true
}

关于ios - 将默认 UITextField 值设置为 0(计算器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51926523/

相关文章:

android - iOS(如 Android)支持的语言/地区列表是什么?

swift - 使用计数器变量隐藏许多标签

swift - 如何组合多个 SignalProducers?

cocoa - Xcode - 一个 Nib ,两个类 - 第二类中的 socket 未连接?

iphone - 如何在Iphone中将语音转换为支持多语言且快速响应的文本?

iOS Buttons - 添加边框

ios - 将两个图像混合在一起后检索原始图像

ios - iOS 应用上 Web Trends SDK 的谷歌移动广告问题

swift - 合并具有相同属性但不同 ID 的 NSManagedObject,与 iCloud 同步导致重复(核心数据,Swift 1.2)

iphone - 如何在用户单击 UITableViewCell Accessory DetailDisclosureButton 时显示选项