gpt4 book ai didi

iphone - 用户将 NSNumbers 输入变量的好方法

转载 作者:行者123 更新时间:2023-11-28 20:26:56 27 4
gpt4 key购买 nike

我正在为我的足球俱乐部制作一个应用程序,让他们可以互相打赌。我正在尝试找到一种从用户那里接收价格输入的方法。我需要数字采用 N(X).XX 的形式,其中小数点前有多少 X 无关紧要。我考虑过几个选项,但我的经验不足以决定哪个是最好的。

到目前为止我想到了什么:

  1. 创建一个显示数字键盘的文本字段。然后我可以使用 [numberFormatter numberFromString: text];。然而,这似乎有点太冒险了。例如,如果用户输入 XX.XXXX.XX.X 或类似的东西,那么应用程序将接受这些值,从而导致以后出现问题行。

  2. 我的另一个想法是使用某种选择器,但那样我们将被限制为一组固定的值。

您有什么建议?我可能会使用文本字段来检查格式输入是否正确,但我不完全确定我将如何去做。

编辑:刚刚检查了 eBay 应用程序,他们有一个非常好的方法。他们使用限制为小数点后两位数字的文本字段。我到底该如何编程?

最佳答案

数字键盘上没有“.”。在类似的情况下,我使用了数字和标点符号键盘,并且必须实现 UITextFieldDelegate 方法

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

我屏蔽了所有非数字或“.”的字符

我的代码如下。这个想法来自 stackoverflow 上的另一个答案,但我现在找不到它,所以感谢提供它的人。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if ([string length] == 0)
return YES;

if ([textField keyboardType]==UIKeyboardTypeNumbersAndPunctuation)
{
NSMutableCharacterSet *_alnum = [NSMutableCharacterSet characterSetWithCharactersInString:@"."];

NSCharacterSet *numberSet = [NSCharacterSet decimalDigitCharacterSet];
[_alnum formUnionWithCharacterSet:numberSet];
NSCharacterSet *nonNumberSet = [_alnum invertedSet];

return ([string stringByTrimmingCharactersInSet:nonNumberSet].length > 0);
}else{
return YES;
}
}

在相同的方法中,您可以以类似的方式检查 textField.text 以查看小数点后有多少位数字,并阻止输入更多的数字

关于iphone - 用户将 NSNumbers 输入变量的好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13627548/

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