用于输入金额的 UITextField

2024-03-20

我正在开发一个销售点应用程序。

所以我想

  1. 假设用户输入100000但我希望它自动显示100,000. and 1000000 become 1,000,000

  2. 第二个问题是,我不希望用户能够输入.他们自己。

  3. 第三个问题是,既然这是钱,我们不能让用户一开始就输入0。

有任何想法吗?

到目前为止,我已经设法将输入限制为仅十进制数字

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {

        let numberSet: NSCharacterSet = NSCharacterSet.decimalDigitCharacterSet().invertedSet;
        return string.stringByTrimmingCharactersInSet(numberSet).length > 0 || string == "";
}

非常感谢

P.S.:我不需要任何小数位,我们还需要考虑用户按下退格键时更改光标位置的情况


Xcode 9 • 斯威夫特 4

import UIKit

class IntegerField: UITextField {
    var lastValue = 0
    let maxValue = 1_000_000_000
    var amount: Int {
        if let newValue = Int(string.digits), newValue < maxValue {
            lastValue = newValue
        } else if !hasText {
            lastValue = 0
        }
        return lastValue
    }
    override func didMoveToSuperview() {
        textAlignment = .right
        keyboardType = .numberPad
        text = Formatter.decimal.string(for: amount)
        addTarget(self, action: #selector(editingChanged), for: .editingChanged)
    }
    @objc func editingChanged(_ textField: UITextField) {
        text = Formatter.decimal.string(for: amount)
    }
}

extension NumberFormatter {
    convenience init(numberStyle: Style) {
        self.init()
        self.numberStyle = numberStyle
    }
}
struct Formatter {
    static let decimal = NumberFormatter(numberStyle: .decimal)
}
extension UITextField {
    var string: String { return text ?? "" }
}

extension String {
    private static var digitsPattern = UnicodeScalar("0")..."9"
    var digits: String {
        return unicodeScalars.filter { String.digitsPattern ~= $0 }.string
    }
}

extension Sequence where Iterator.Element == UnicodeScalar {
    var string: String { return String(String.UnicodeScalarView(self)) }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于输入金额的 UITextField 的相关文章

  • object_setClass()而不是分配isa指针的性能

    我注意到在 XCode 4 6 的最新更新中 我收到了关于以下几行的警告JSONKit m 具体来说 设置对象类的行 dictionary gt isa JKDictionaryClass 这些被标记为已弃用 并注明首选方法是使用objec
  • 尽管遵循以下说明,PWA iOS Splash 仍不显示

    我正在制作 PWA 并尝试显示闪屏 我正在关注这个教程 https developer apple com library archive documentation AppleApplications Reference SafariWe
  • 快速将数据从 tableviewcontroller 传递到另一个 tableviewcontroller

    我有一个正在创建的表单 该表单填充有用户输入的文本字段 回答完所有问题后 会弹出一个保存按钮 我在使此表视图控制器将数据传递到新的表视图控制器时遇到问题 我被困住了 不知道该怎么做 import UIKit class TableViewC
  • 更新到 Xcode 7.0.1,项目现在有问题

    因此 我将 Xcode 6 1 版本上传到 iTunes Connect 并且该应用程序获得了批准 现在我正在尝试更新应用程序 我更新到 Xcode 7 0 1 Xcode 给我带来了问题 指出 对于应用程序 我使用了故事板和 Object
  • 如果您查看内部,nib 文件到底是什么样子的?

    我刚刚学习 nibs 和 swift 并对某些东西感到好奇 我知道 如果您有一个 main storyboard 文件 则首先加载根视图控制器的笔尖 然后加载该视图控制器下可能分层存在的任何视图 但是 我想知道一些事情 当他们说笔尖已 加载
  • 相机叠加图片

    edit 3 好消息和坏消息 好消息是 在连接检查器中 通过断开覆盖 UIToolbar 并连接 UIImageview 我看到theKing 但是 坏消息 我没有看到我也需要的 UIToolbar 所以现在的问题是 当用户完成这里操作后
  • 将 HTML 字符串加载到 UIWebView 中的延迟

    我在导航控制器中有两个视图控制器 第一个视图控制器有一个带有按钮的菜单 按下此按钮将移动到第二个视图控制器并将 html 字符串加载到 UIWebView 中 没有其他东西被加载到 webview 中 只是一个简单的 NSString 其中
  • 未安装的应用程序的URL方案

    简单的问题 我正在开发一个将注册自己的 URL 方案的应用程序 我计划通过人们最喜欢的 QRCode 阅读器使用 QRCode 启动该应用程序 我的问题 如果我的应用程序尚未安装在他们的 iPhone iPad 上 会发生什么 他们会被引导
  • 在 iPhone 和 Cocos2d 中从类类型(+)方法访问对象?

    我有一个类方法 在其中创建并返回类对象 但我想访问同一类中该对象的某些属性 作为一个类方法 我无法在 h 文件中声明该变量 然后在其他方法中访问它 以下是代码 我如何在下面的实例方法中访问 backsprite 或 hudlayer 对象的
  • Xcode 本地化设置中没有加号或减号按钮

    我需要在两天内翻译 iOS 应用程序 但我的 XCode 版本 4 4 和 4 5 Developer Preview 都没有给我添加其他语言的选项 我只能选择单击 Make localized 但我只能选择英语 选择它后 Xcode 中的
  • 为什么 iOS 5.0 不喜欢纯窗口应用程序?为什么它要求使用视图控制器?

    我有一个使用 Xcode 4 0 的 基于窗口的应用程序 模板创建的 iOS 应用程序 当时运行良好 并且使用的是 iOS 4 3 SDK 这是一个简单地将按钮 标签等直接放置到窗口上的应用程序 没有视图控制器 什么都没有 但现在我已经升级
  • 获取 Swift 子目录中资源的所有 URL

    我正在尝试为 iOS 应用程序的子目录中的所有资源创建 URL 数组 我似乎无法到达正确的路径 即使我不知道名称 我也希望能够检索 URL 即我不想将文件名硬编码到代码中 Below is a screen shot of the hier
  • 子视图控制器旋转方法未被调用

    Summary 我试图将子视图控制器添加到父视图控制器 并让父视图控制器通知子视图控制器旋转事件 但是 旋转消息不会转发到子视图控制器 这是默认行为 为什么这种默认行为没有发生 环境 iOS 7 XCode 5 OSX 10 9 Detai
  • iOS:addConstraints:应用程序崩溃

    Problem 我似乎无法在现有项目中采用自动布局 Details 我之前也遇到过与此问题相同的问题presentViewController 在 iOS 但所提供的答案都不是我的解决方案 我正在使用所有没有 xib 的故事板视图 我的 使
  • Apple Mach-O 链接器错误 armv7s 和 libGoogleAdMobAds.a

    我刚刚升级了我的应用程序以在新的 iPhone5 模拟器上运行 但是当我尝试为我的 iPhone 4S 设备构建它时 我收到此 Apple Mach O Liner 错误 ld 文件是通用的 3片 但不包含 n armv7s 切片 User
  • 即时将图像添加到 AR 资源以进行图像识别

    ARKit1 5介绍图像识别 在代码中 您必须创建一组参考图像 如下所示 let referenceImages ARReferenceImage referenceImages inGroupNamed AR Resources bund
  • UINavigationController 在后退按钮单击时向下滚动

    我正在开发一个带有多个导航控制器的 iPhone iPad 应用程序 当我在设备处于横向模式时单击视图的后退按钮时 前一个视图会垂直滚动到屏幕中 而不是像往常一样水平滚动 推送动画始终水平工作 正如它应该的那样 是什么导致了这个奇怪的问题
  • iOS 11 getUserMedia 不起作用?

    苹果公司发表声明称getUserMedia将在 iOS 11 上完全正常运行 安装 iOS 11 Beta 版本 5 后 我确实收到一条消息 表明我的网站请求访问我的相机和麦克风 但似乎是这样的 video src window URL c
  • extern NSString *const 在类中。

    你好 我有这个头文件 import
  • 如何在 XCode5 中将部署目标更改为 5.1.1 [重复]

    这个问题在这里已经有答案了 我正在一个项目中工作 我需要支持 iOS 5 1 1 但在 部署目标 的下拉菜单中我没有 5 1 1 作为选项 我的问题是如何将 iOS 5 1 1 添加为部署目标 我将非常感谢你的帮助 如果您愿意 您可以在框中

随机推荐

  • 如何使用Azure Blob存储挂载数据?

    我是 Azure Databricks 的新手 我的导师建议我完成机器学习训练营 https aischool microsoft com en us machine learning learning paths ai platform
  • StackFrame 的性能如何?

    我正在考虑使用类似的东西StackFrame stackFrame new StackFrame 1 记录执行方法 但我不知道它的性能影响 堆栈跟踪是否是在每次方法调用时都会构建的 因此性能不应该成为问题 还是仅在需要时才构建 您是否建议在
  • 上传进度 - 有时 $_SESSION[$key] 为空

    我有 Ubuntu 12 04 LTS 并使用 PHP 5 5 和 Apache2 通过 PHP 会话上传进度来实现上传进度 问题是它有时有效 有时无效 我的意思是有时我在上传开始时直接获得 100 的进度百分比而没有完成上传 这意味着在这
  • 自动重新加载作为 PySpark 依赖项添加到驱动程序中的模块中的更改

    我刚刚注意到一个微妙的问题 在使用时addPyFile在 PySpark 和autoreload在 Jupyter 笔记本中 发生的情况是 我在 PySpark UDF 中使用的模块中有一些代码 因此 据我所知 这些模块需要通过以下方式添加
  • 在Three.js中,如何翻译Vector3?

    我创建了一个Vector3 called ori 我已经填充了它的坐标 x y 和 z 现在 我该如何平移该矢量 例如沿 z 轴 的指示值 我试过这个 ori translateZ 100 这给我一个错误 TypeError 无法读取未定义
  • 使用哈希将类添加到具有特定 href 的 a 元素

    我试图根据 URL 哈希向特定元素添加 活动 类 但它没有按我的预期工作 这是我的代码 var hash window location hash substr 1 if hash false products copy div produ
  • 在 Sequelize model.destroy({ truncate: true }) 中不重置主键

    在 Sequelize 中 我使用这个函数 model destory truncate true 它删除表中的所有数据 但问题是它不会重置表中应设置为零的主键序列 我正在使用Mysql 有人说Mysql会自动重置主键序列 但在我的情况下并
  • C++ 标准是否对浮点数的表示指定了任何内容?

    对于类型T为此std is floating point
  • 在 igraph 中绘制网络时,R 绘图边距太大

    我已经搜索过 但还没有找到可以开始工作的解决方案 我没有任何可复制的数据 但我有下面的图表说明了我的问题 我的图太小了 对我的问题可能是什么有什么想法吗 下图大约有一半的区域是空白 使用以下命令设置边距参数 par mar c 0 0 0
  • webapi 返回的动态 JavaScript

    我正在使用 requirejs 为我的页面加载 JavaScript 我有一个 webApi 路由 可以使用 Newtonsoft JObject 动态读取文件并返回 JSON 然后 在客户端 我获取结果并将其分配给本地 JavaScrip
  • iOS7 上自动布局忽略 UITabBar(栏下的内容)

    我已在情节提要中将选项卡栏设置为不透明 但我似乎仍然是半透明的 当我设置自定义 UITabBarController 时setBarStyle仅提供不透明黑色 但这是最不重要的问题 无论我做什么 我的视图内容都会位于选项卡栏下方 就像它被
  • 我刚刚部署了我的 Vite React 站点,但我的图标/图像没有部署

    I deployed my Vite React site on Netlify but my skill icons aren t rendered Here s the site https mjshubham21 portfolio
  • Swift:验证用户名输入

    在开发 Swift 应用程序时 我有一个由用户填写的表单 我希望用户选择自己的用户名 我想要对用户名的唯一限制是 没有特殊字符 例如 只允许使用字母 下划线和数字 长度最多应为 18 个字符 最少为 7 个字符 在哪里可以找到验证输入字符串
  • 由于导入量角器而无法加载 config.ts

    我正在尝试启动一个新的量角器项目来测试有角度的网站 我全局安装了node js typescript protractor 和jasmine 我转到项目文件夹并执行webdriver manager update 那我就做webdriver
  • Apache CXF 生成数字而不是字符串

    如果一个字符串看起来像一个数字 例如 111 CXF 不将其作为字符串返回 而是作为数字返回
  • Apache Spark 中的 CPU 使用率是否受到限制?

    我最近发现 在 UDF 中添加并行计算 例如使用并行集合 可以显着提高性能 即使在运行 Spark 时也是如此local 1 模式或使用具有 1 个执行器和 1 个核心的 Yarn E g in local 1 模式下 Spark Jobs
  • 弧形边框 CSS 实现

    最近我在Dribbble上看到一个设计理念 对我很有启发 特别是顶部和底部带有弯曲 U 形的侧边栏给了我关于制作选项卡堆栈或流程图的很好的想法 我可以用 alpha 图像来制作它 但使用纯 CSS 会更好 而且我不介意 CSS3 不过我对
  • 快速从模数和指数创建 SecKey

    我尝试制作自己的 SecKey exponent let exponent 10001 modulus let modulus D6250B831F82EC984513922E797283E4D3879E1F0AD52364EBDA5A56
  • SQL Server:什么是 ODBC 规范函数?

    什么是 ODBC 规范函数 例如 fn NOW 基本上 这些规范函数是微软承诺将适用于其提供商支持的所有类型的数据源的一组函数 这意味着您不必根据实际使用的数据提供程序来区分您的代码 这些函数不是基本 SQL 的一部分 因此您应该尝试找到可
  • 用于输入金额的 UITextField

    我正在开发一个销售点应用程序 所以我想 假设用户输入100000但我希望它自动显示100 000 and 1000000 become 1 000 000 第二个问题是 我不希望用户能够输入 他们自己 第三个问题是 既然这是钱 我们不能让用