0

10 2 0 1 0.2などの任意の数値を入力するiphoneアプリがあります。これの代わりに、ユーザーがテキストを入力すると、数値を入力するように警告する必要があります。

    UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Value Must Be In Number " delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];
    [alert release];
4

4 に答える 4

1

このコードを試してください:

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    if (textField==txtMobileNo) 
    {
        [self validatePhone];
    }else
    {
        [textField resignFirstResponder];

    }
    // called when 'return' key pressed. return NO to ignore.
    return YES;
}

- (BOOL) validatePhone
{
    NSString *phoneRegex = @"^+(?:[0-9] ?){6,14}[0-9]$"; 
    NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneRegex]; 
    if ([phoneTest evaluateWithObject:txtMobileNo.text] == YES) 
    {
        NSLog(@"proper phone nO ");        
        return YES;   
    }
    else
    {
        UIAlertView *alert=[[UIAlertView alloc] initWithTitle:nil message:@"Please,Enter Your Person proper phone no" delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil  ];
        [alert show];
        [alert release];
        NSLog(@"phone no. not in proper format");
        return NO;
        [txtMobileNo becomeFirstResponder];

    }  
}

お役に立てば幸いです。

于 2012-05-14T04:54:42.617 に答える
0

それはアプリの種類を混乱させますね?確認したいのは、UITextfieldデリゲートメソッドです。viewControllerをtextieldsデリゲートとして設定し、UITextFieldDelegateプロトコルに応答するようにします。

textField:shouldChangeCharactersInRange:replacementStringメソッドを実装し、replacementStringで不要な文字をチェックします。

ただし、アラートを表示するのではなく、不要な文字が含まれている場合はNOを返すだけだと思います。次に、ユーザーが必要なもの以外のものを入力しても、何も起こりません。

于 2012-05-14T04:42:26.140 に答える
0

入力した文字を検証し、このデリゲートでロジックを実行します。

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

// your logic to restriction goes here.like check the entered char and through alert
}




-(BOOL) validateNumericValue:(NSString*) textValue
{   
    NSNumberFormatter* numberFormatter = [[[NSNumberFormatter alloc] init] autorelease];
    NSNumber* number = [numberFormatter numberFromString:textValue];

    if (number != nil) 
    {
        return YES;
    }
    return NO;
}
于 2012-05-14T04:45:00.383 に答える
0

以下を使用して、それが番号であるかどうかを確認できます。-

NSString *yourString= @"121212";
NSCharacterSet *decimalNUmSet= [NSCharacterSet decimalDigitCharacterSet];
BOOL isNum= ([[yourString stringByTrimmingCharactersInSet:decimalNUmSet] isEqualToString:@""] || 
                      [[yourString stringByTrimmingCharactersInSet:decimalNUmSet] isEqualToString:@"."]);

ここで、2番目の部分には10進数も含まれています。

もう1つの方法は、数字キーボードをユーザーに提示して、ユーザーが数字のみを入力できるようにすることです。

于 2012-05-14T04:50:47.727 に答える