0

入力のいずれかが数値および負の数値ではない場合、ボタンのクリック時にエラーメッセージを表示し、他の画面に移動しないようにしたい計算用の多くのtextField入力があります

4

2 に答える 2

2

ジェームズ、これを処理する方法は少なくとも2つあります。

#1)ストーリーボード/xibファイル内の特定の数値のみのテキストフィールドに数値キーボードを指定する

#2)テキストフィールドのデリゲートを設定し、ユーザーが編集を終えたら(たとえばtextFieldDidEndEditing:)、テキストフィールドの内容を確認し、数字以外のものが表示された場合は、UIAlertをスローします。

これを行う1つの方法は次のとおりです。

- (void)textFieldDidEndEditing:(UITextField *)textField
{
    NSRange rangeOfInvalidCharacter = [textField.text rangeOfCharacterFromSet: [[NSCharacterSet decimalDigitCharacterSet] invertedSet]];

    if(rangeOfInvalidCharacter.location != NSNotFound)
    {
        // throw up a UIAlert here

        // and, if you want, erase the bogus text via:
        textField.text = @"";
        return;
    }

    // and if we get here, that means the text field contents are only digits.
}
于 2012-05-31T04:22:09.043 に答える
0

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

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
{
  NSCharacterSet * set = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789"] invertedSet];

if ([string rangeOfCharacterFromSet:set].location != NSNotFound) {
  return NO;  // For don't add this character
}

return YES; // For input a true character

}
于 2012-05-31T04:26:43.273 に答える