在 UITextField 中添加逗号作为用户类型的数值

     2023-03-14     280

关键词:

【中文标题】在 UITextField 中添加逗号作为用户类型的数值【英文标题】:Adding commas to number values as user types in the UITextField 【发布时间】:2016-12-16 06:22:31 【问题描述】:

我对@9​​87654321@ 使用了一种更改方法,我想在用户输入数字时格式化UITextField。就像我希望数字被实时格式化一样。我希望将 1000 更改为 1,000、50000 更改为 50,000 等等。

我的问题是我的UITextField 值没有按预期更新。例如,当我在UITextField 中输入 50000 时,结果返回为 5,0000 而不是 50,000。这是我的代码:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool 

    //check if any numbers in the textField exist before editing
    guard let textFieldHasText = (textField.text), !textFieldHasText.isEmpty else 
        //early escape if nil
        return true
    

    let formatter = NumberFormatter()
    formatter.numberStyle = NumberFormatter.Style.decimal

    //remove any existing commas
    let textRemovedCommma = textFieldHasText.replacingOccurrences(of: ",", with: "")

    //update the textField with commas
    let formattedNum = formatter.string(from: NSNumber(value: Int(textRemovedCommma)!))
    textField.text = formattedNum
    return true

【问题讨论】:

***.com/questions/24115141/… 【参考方案1】:

shouldChangeCharactersIn 的第 1 条规则 - 如果将值分配给文本字段的 text 属性,则必须返回 false。返回true 告诉文本字段对您已经修改的文本进行原始更改。这不是你想要的。

您的代码中还有另一个重大缺陷。它不适用于使用其他方式格式化更大数字的语言环境。并非所有语言环境都使用逗号作为组分隔符。

【讨论】:

谢谢 - 我没有意识到我错误地使用了真/假返回。并感谢您发现语言环境问题。我会尝试解决这个问题,我会报告!【参考方案2】:

尝试使用 NSNumberFormatter

var currencyFormatter = NumberFormatter()
currencyFormatter.usesGroupingSeparator = true
currencyFormatter.numberStyle = .currency
// localize to your grouping and decimal separator
currencyFormatter.locale = NSLocale.current
var priceString = currencyFormatter.string(from: 9999.99)

它会打印出类似 = "$9,999.99"

的值

您也可以根据需要设置Locale

【讨论】:

【参考方案3】:
let formatter = NumberFormatter()
formatter.numberStyle = NumberFormatter.Style.decimal
let textRemovedCommma = textField.text?.replacingOccurrences(of: ",", with: "")
let formattedNum = formatter.string(from: NSNumber(value: Int(textRemovedCommma!)!))
textField.text = formattedNum

【讨论】:

你好!虽然此代码 sn-p 可能是解决方案,但including an explanation 确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。【参考方案4】:

不要使用小数样式,而是使用货币样式。如果不需要,也设置currencySymbol 空字符串。还要确保您的设备区域选择为印度,否则它将在 3 位而不是 2 位后添加逗号。

 -(NSString*)addingCommasToFloatValueString:(NSString *)rupeeValue 

NSNumber *aNumber = [NSNumber numberWithDouble:[rupeeValue   doubleValue]];
NSNumberFormatter *aFormatter = [NSNumberFormatter new];
[aFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[aFormatter setCurrencySymbol:@""];
[aFormatter setMinimumFractionDigits:0];
[aFormatter setMaximumFractionDigits:2];
NSString *formattedNumber = [aFormatter stringFromNumber:aNumber];
return formattedNumber;

【讨论】:

键入时在数字中添加逗号

】键入时在数字中添加逗号【英文标题】:Addingcommastonumberswhentyping【发布时间】:2015-02-0309:02:29【问题描述】:我尝试在用户输入数字时添加逗号。在Jquery中选择属性为number类型的inputform-control类的正确语法是什么?编辑:我无... 查看详情

添加 UITextField 作为 UITableViewCell 的子视图在 IOS 6 中工作正常,但在 IOS 7 中它不起作用?

】添加UITextField作为UITableViewCell的子视图在IOS6中工作正常,但在IOS7中它不起作用?【英文标题】:AddedUITextFieldasasubviewofUITableViewCellworkingfineinIOS6butinIOS7itisnotworking?【发布时间】:2014-01-2814:10:41【问题描述】:在我的应用程序中... 查看详情

在 Swift 的 UITextfield 中显示用户输入的密码

】在Swift的UITextfield中显示用户输入的密码【英文标题】:ShowpasswordtypedbyuserinUITextfieldinSwift【发布时间】:2018-08-3114:17:59【问题描述】:我的密码UITextfield目前已作为安全入口打开。我想在UISwitchisturnedon时再次向用户显示他在UITex... 查看详情

限制用户只能输入七个逗号分隔的单词

...rds【发布时间】:2017-03-1610:30:58【问题描述】:我有一个UITextfield,我希望用户在其中输入逗号分隔的文本示例:大象、狐狸等,另外我想限制用户输入最多7个逗号分隔的单词。我在UITextfield的委托方法中写了这段代码-(BOOL)textFi... 查看详情

将建议的文本作为用户类型添加到 CEdit

】将建议的文本作为用户类型添加到CEdit【英文标题】:AddingproposedtexttoaCEditastheUserTypes【发布时间】:2013-12-0813:56:37【问题描述】:在我的MFC应用程序中,我试图通过在用户键入时提出文本来为用户提供帮助。用户输入的文本保... 查看详情

将占位符添加到 UITextField,如何以编程方式快速设置占位符文本?

】将占位符添加到UITextField,如何以编程方式快速设置占位符文本?【英文标题】:AddPlaceholdertoUITextField,howtosettheplaceholdertextprogrammaticallyinswift?【发布时间】:2016-08-2723:32:03【问题描述】:我正在从数据库中提取一个电话号码,... 查看详情

UITextfield 值已成功更新,但未显示在表格中

】UITextfield值已成功更新,但未显示在表格中【英文标题】:UITextfieldvaluesuccessfullyupdated,butnotshownintable【发布时间】:2015-07-3116:18:21【问题描述】:在我的应用程序中,行从不同的视图添加到我的TableView。当用户添加行时,用户... 查看详情

将填充/插图添加到 UIImage 作为 UITextField 的背景

】将填充/插图添加到UIImage作为UITextField的背景【英文标题】:Addpadding/insetstoUIImageasbackgroundofUITextField【发布时间】:2021-02-0911:13:37【问题描述】:我想在文本字段的右侧有一个带一点填充的三角形,目前它就在边界处:我的代... 查看详情

使表格视图中的 UITextField 可见滚动

】使表格视图中的UITextField可见滚动【英文标题】:MakeUITextFieldinsideatableviewvisiblescrolling【发布时间】:2011-05-0720:52:14【问题描述】:我有一个UITableViewController、一堆部分和行,我为每一行添加了一个UITextField作为子视图,在行本... 查看详情

在顶部添加uilabel作为uitextfield的子视图(代码片段)

我正在实施UILabel作为UITextField的子视图,它将显示在UITextField本身的正上方。UITextField有一个圆形边界,我想要实现的是在边界上显示的UILabel。目前所有东西都按预期工作,但是UILabel是在UITextField的边界后面绘制的。我希望它在... 查看详情

从表视图中的 UItextField 检索插入用户数据

】从表视图中的UItextField检索插入用户数据【英文标题】:RetrievetheinsertuserdatafromUItextFieldinTableView【发布时间】:2014-02-1010:26:10【问题描述】:我创建UITableView并将文本字段添加到单元格的内容以允许用户输入他的数据,当用户... 查看详情

添加React后如何在VScode中制作更漂亮的自动格式而不是从打字稿类型中删除逗号

】添加React后如何在VScode中制作更漂亮的自动格式而不是从打字稿类型中删除逗号【英文标题】:HowtomakeprettierautoformatterinVScodenotremovecommasfromtypescripttypesafterIaddedReact【发布时间】:2022-01-0122:32:25【问题描述】:当我打开自动格式... 查看详情

带有 UiTextField 的 RxSwift

】带有UiTextField的RxSwift【英文标题】:RxSwiftWithUiTextField【发布时间】:2021-07-2813:45:53【问题描述】:我是RxSwift新手,我正在尝试执行以下操作,用户类型是搜索UiTextField应用必须在用户完成输入后等待1秒,以确保不会在按下每... 查看详情

jQuery可以在用户输入数字时添加逗号吗?

】jQuery可以在用户输入数字时添加逗号吗?【英文标题】:CanjQueryaddcommaswhileusertypingnumbers?【发布时间】:2011-02-0714:37:19【问题描述】:当用户输入数字时,我将如何动态添加逗号?有没有好的数字格式化程序可以提供帮助?我... 查看详情

在 type=number vue 中自动添加逗号

】在type=numbervue中自动添加逗号【英文标题】:Automaticallyaddcommaintype=numbervue【发布时间】:2018-10-0223:40:48【问题描述】:有什么方法可以在vuejs的inputtype="number"字段中自动添加逗号?这是我在Microsoft中自动更改IME选项并禁... 查看详情

快速为 uiTextField 添加前缀

】快速为uiTextField添加前缀【英文标题】:addprefixtouiTextFieldinswift【发布时间】:2021-01-2713:01:09【问题描述】:我正在尝试将国家/地区代码作为前缀添加到textField,以便用户可以输入他的电话号码的其余部分@IBActionfuncphoneLogin(_sen... 查看详情

不允许用户输入数字1作为uitextfield中的第一个数字(代码片段)

我有一个UITextField,用户可以输入他们的电话号码。我需要的电话号码采用以下格式:5567289223,而不是这样,开头还有1:15567289223。我已经有一个if语句设置,所以如果数字大于10位或小于10位,它将引发错误。我不知道如何解决... 查看详情

UIPickerView 和 UITextField 从 UIPickerView 获取值

】UIPickerView和UITextField从UIPickerView获取值【英文标题】:UIPickerViewandUITextFieldgetvaluefromUIPickerView【发布时间】:2012-03-2614:28:47【问题描述】:好的,我不知道如何解决这个问题。我有一个UITextField,我根据XML文件的定义动态添加到... 查看详情