私はアプリを作成しています。ユーザーがデータを入力したときに、ユーザーが入力した場合のように、この入力を取得せず、テキストフィールドに何も表示せず、数値を入力した場合は受け入れる必要があります。
質問する
287 次
5 に答える
4
次のコードは役に立ちます。これにより、数字以外のテキストをテキストフィールドに入力できなくなります。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
static NSCharacterSet *charSet = nil;
if(!charSet) {
charSet = [[[NSCharacterSet characterSetWithCharactersInString:@"0123456789"] invertedSet] retain];
}
NSRange strLocation = [string rangeOfCharacterFromSet:charSet];
return (strLocation.location == NSNotFound);
}
于 2013-03-13T08:47:54.223 に答える
2
なぜあなたはキーボードスタイルを与える方が良いのですか
[txtField setKeyboardType:UIKeyboardTypeNumberPad]
または、プログラムでそれを行うことができます:
NSString *nameRegex = @"[0-9]*";
NSPredicate *nameTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", nameRegex];
BOOL value = [nameTest evaluateWithObject:string];
if(value == YES)
{
// Do Somethings
}
else
{
// Do something
}
于 2013-03-13T08:31:46.890 に答える
0
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (textField.tag==3)
{
NSUInteger lengthOfString = string.length;
for (NSInteger loopIndex = 0; loopIndex < lengthOfString; loopIndex++)
{
unichar character = [string characterAtIndex:loopIndex];
if (character < 46 || character==47)
return NO;
if (character > 57)
return NO;
}
}
タグを textField に設定します。
于 2013-03-13T08:38:36.257 に答える
0
Textfield のキーボード タイプを Numberpad に設定する必要があります。
コードを使用してこれを試してください: (また、XIB プロパティのインターフェイス ビルダーで設定することもできます)
[txtFieldObj setKeyboardType:UIKeyboardTypeNumberPad];
于 2013-03-13T08:32:00.850 に答える
0
NSUInteger lengthOfString = string.length;
for (NSInteger loopIndex = 0; loopIndex < lengthOfString; loopIndex++) {
unichar character = [string characterAtIndex:loopIndex];
if (character < 48) return NO; // 48 unichar for 0
if (character > 57) return NO; // 57 unichar for 9
}
これは、テキストフィールドに記述する必要があるコードであり、範囲内の文字を変更する必要があります
于 2013-03-13T09:58:12.823 に答える