1. ホーム
  2. objective-c

[解決済み] UITextFieldへの入力が数値のみであることの確認

2023-06-04 18:40:48

質問

に入力された文字列を検証するにはどうすればよいのでしょうか? UITextField ? 文字列が小数点以下を含む数値であることを確認したいのですが。

どのように解決するのですか?

私はこのコードをMacアプリで使用していますが、同じか似たようなものがiPhoneでも動作するはずです。 これは RegexKitLite の正規表現に基づいており、無効な場合はテキストを赤くします。

static bool TextIsValidValue( NSString* newText, double &value )
{
    bool result = false;

    if ( [newText isMatchedByRegex:@"^(?:|0|[1-9]\\d*)(?:\\.\\d*)?$"] ) {
        result = true;
        value = [newText doubleValue];
    }
    return result;
}

- (IBAction) doTextChanged:(id)sender;
{
    double value;
    if ( TextIsValidValue( [i_pause stringValue], value ) ) {
        [i_pause setTextColor:[NSColor blackColor]];
        // do something with the value
    } else {
        [i_pause setTextColor:[NSColor redColor]];
    }
}