2011-08-15 59 views
0

可能重複:
Iphone UITextField only integer如何在文本字段中應用對文本值的限制?

我在iPhone平臺上的新的程序員。我想對文本字段應用限制,即用戶只輸入數字值而不是任何字符。那麼請告訴我如何應用這些限制並在鍵盤上添加完成按鈕?所以我只能使用數字鍵盤。如果我只使用數字鍵盤,那麼用戶只輸入數字值,那麼如何在鍵盤上添加完成按鈕?總之,我如何在鍵盤上添加完成按鈕並對字符值應用限制?

回答

0

您應該設置文本框輸入類型鍵盤和落實UITextFieldDelegate和文本框返回NO:shouldChangeCharactersInRange:replacementString:每當一個字符是不是在你接受的子集(0-9,你要允許任何標點符號)。這將導致文本字段忽略任何其他輸入,如果用戶粘貼。

至於完成按鈕,您可以添加一個外部按鈕,可以關閉鍵盤,也可以創建您自己的輸入視圖,其中有一個鍵盤和完成按鈕。

+0

ü可以給我舉例限制在texfield? – iRam11

2

下面的方法,以確保用戶可以鍵入只數字

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

    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; 
    [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; 

    NSNumber* myNumber; 
    NSString* myString = [textField.text stringByReplacingCharactersInRange:range withString:string]; 
    range = NSMakeRange(0, [myString length]); 
    [numberFormatter getObjectValue:&myNumber forString:myString range:&range error:nil]; 

    if (([myString length] > 0) && (myNumber== nil || range.length < [myString length])) { 

     return NO; 
    }else { 
     return YES; 
    } 
} 

當然,你可以設置

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
相關問題