2011-04-11 82 views
1

我的iPad應用程序中有一個TextField。我想讓「數字鍵盤」接觸(沒有標點符號和字母鍵盤按鈕)。我該怎麼做?如何驗證TextField?TextField驗證

+0

嘗試設計自定義鍵盤自己所有我不使用Interface Builder的 – ajay 2011-04-11 05:35:33

回答

4

在界面構建器中設置textField鍵盤= NumberPad。

由於

Mitesh

+0

第一。 第二件事 - 如果我將它設置爲UIKeyBoardNumberPad也給出了我不想要的特殊字符。 – Akshay 2011-04-11 04:52:54

+0

對於數字和標點符號鍵盤類型是UIKeyboardTypeNumbersAndPunctuation,對於只有數字鍵盤類型是UIKeyboardTypeNumberPad。請檢查。 – 2011-04-11 05:05:20

+0

然後使用正則表達式來驗證你的號碼。 – 2011-04-11 05:17:12

2

你不能在ipad上得到一個數字鍵盤。你必須檢查用戶從鍵盤輸入了什麼,如果它沒有數字顯示他們輸入數字的警報。

4
NSString *nameRegex [email protected]"[0-9]"; 
NSPredicate *nameTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", nameRegex]; 
BOOL isNumber=[nameTest evaluateWithObject:string]; 

if(isNumber) { 
    // valid number found 
} else { 
    // error message 
} 

使用該認證碼的的UITextField委託方法textField:shouldChangeCharactersInRange:replacementString:以防止用戶甚至在進入無效值。

1

你也可以使用下面的askee mumber驗證我已經進行了驗證,其中我已經考慮了onley數字和後退按鈕。

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

    if([string isEqualToString:[NSString stringWithFormat:@"%c", 48]]||[string isEqualToString:[NSString stringWithFormat:@"%c", 49]] ||[string isEqualToString:[NSString stringWithFormat:@"%c", 50]] ||[string isEqualToString:[NSString stringWithFormat:@"%c", 51]] ||[string isEqualToString:[NSString stringWithFormat:@"%c", 52]] ||[string isEqualToString:[NSString stringWithFormat:@"%c", 53]] ||[string isEqualToString:[NSString stringWithFormat:@"%c", 54]] ||[string isEqualToString:[NSString stringWithFormat:@"%c", 55]] ||[string isEqualToString:[NSString stringWithFormat:@"%c", 56]] ||[string isEqualToString:[NSString stringWithFormat:@"%c", 57]] || [string isEqualToString:[NSString stringWithFormat:@"%c", 46]]||[string isEqualToString:@""]) 

    { 

    if(textField==myText) 
     return YES; 
    else 
     return NO; 
} 
else 
    return NO; 
} 
1

下面是iPad的數字鍵區實現:https://github.com/IngmarStein/NumericKeypad

免責聲明:這是我自己AZU的NumericKeypad的叉

+0

感謝您發佈您的答案!請務必仔細閱讀[自助推廣常見問題](http://stackoverflow.com/faq#promotion)。另請注意,每次鏈接到您自己的網站/產品時,您都必須*發佈免責聲明。 – 2013-02-27 07:11:41

+0

另外,你實際上並沒有解決OP的問題:他們想要一個沒有特定字符的數字鍵盤,或者是對它們進行驗證的代碼。 – 2013-02-27 07:12:59

+0

OP想要一個沒有字母字符的鍵盤。上面的庫包含小數點分隔符,但可以輕鬆擴展以隱藏它。 – IngmarStein 2013-02-27 07:48:45