0

我是 iOS 新手。我有一个 UITextField,我在其中添加如下值:1234、54678、8976

在方法 shouldChangeCharactersInRage 中,我想在每次 nsstring 之后使用 , 。意思是如果我要添加:我的 NSString 中的 1234 我想要 1234 如果我有 1234,我的 NSStringg 中有 5 我将只有 5

这是我到目前为止的代码:

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

    NSString *getNo=[textField.text stringByReplacingCharactersInRange:range withString:string];

    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\ .*?," options:0 error:NULL];
    NSArray *matches = [regex matchesInString:getNo options:0 range:NSMakeRange(0, [getNo length])];
    NSTextCheckingResult *match = [matches lastObject];
    if (match!=nil){
        getNo=@"";
    }

在这种情况下的问题是,在以下情况下:1234, 65 而不是在我的 getNo 中有 65,我将有一个空对象。

如何解决这个问题?

4

2 回答 2

1

尝试这个

NSArray *subStrings = [textFieldTextString componentsSeparatedByString:@","]; //this will returns array of strings separated by ,

double answer = [[subStrings lastObject] doubleValue];//get last value and type cast it
于 2013-11-06T09:02:38.663 回答
1

尝试这个。

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {    
    NSString *textFieldString=[textField.text stringByReplacingCharactersInRange:range withString:string];
    NSArray *subStrings = [textFieldString componentsSeparatedByString:@","];
    NSString *lastNumberString = [subStrings lastObject];

    NSString *trimmedString = [lastNumberString stringByTrimmingCharactersInSet:
                              [NSCharacterSet whitespaceCharacterSet]];
    return YES;
 }
于 2013-11-06T09:06:42.907 回答