我正在尝试找出 macOS 中的数字格式化程序,我只想允许数字和小数点,但我遇到了麻烦

Posted

技术标签:

【中文标题】我正在尝试找出 macOS 中的数字格式化程序,我只想允许数字和小数点,但我遇到了麻烦【英文标题】:I'm trying to figure out the number formatter in macOS, I would like to only allow numbers and a decimal point, but I'm having trouble 【发布时间】:2022-01-07 07:41:52 【问题描述】:

这仅适用于整数值,我从另一个 *** 问题中发现了这一点,但是我如何设置样式以允许小数位为好。我是 macOS 的新手,不胜感激!

class OnlyIntegerValueFormatter: NumberFormatter 
    
    override func isPartialStringValid(_ partialString: String, newEditingString newString: AutoreleasingUnsafeMutablePointer<NSString?>?, errorDescription error: AutoreleasingUnsafeMutablePointer<NSString?>?) -> Bool 
        
        // Ability to reset your field (otherwise you can't delete the content)
        // You can check if the field is empty later
        if partialString.isEmpty 
            return true
        
        
        // Optional: limit input length
        
         if partialString.count > 8 
         return false
         
         
        // Actual check
        return Int(partialString) != nil
    

【问题讨论】:

【参考方案1】:

要允许十进制数字,您可以将您的 return 语句更新为以下内容

// ...
    return number(from: partialString) != nil

那么你允许整数和十进制数

还有更多可用选项(例如maximumIntegerDigits)通过使用NumberFormatter (https://developer.apple.com/documentation/foundation/numberformatter) 来限制您的输入

【讨论】:

谢谢你,这太棒了!

以上是关于我正在尝试找出 macOS 中的数字格式化程序,我只想允许数字和小数点,但我遇到了麻烦的主要内容,如果未能解决你的问题,请参考以下文章

如何强制 Text::CSV 将数字存储为文本?

找出 TOP 10 函数的总和

Apps 脚本:带有文本的自定义数字格式

PHP中的数字格式不正确[重复]

如何在 macOS 应用程序中使用 swift 播放视频?

如何使用样式/模板格式化 wpf 中的小数位数?