JAMValidatingTextFieldフォームの超簡単バリデーション[CocoaPods]


Objective-Cで最近はまっていたのは、フォームのバリデーションをいかに簡単に、わかりやすく実装するかでした。で、CocoaPodsでめぼしいのをいくつか試してみて良かった『JAMValidatingTextField』の紹介です!


🐠 サンプル画像

こういったUI系はサンプルを見るのが一番!

😎 コードのサンプル

Podfileへの追記

Podfileに次の内容を追記して、pod installを実行。

# TextField with Validation
pod 'JAMValidatingTextField'

ビルトインタイプのバリデーションの設定

URLやEmail、zipcode(海外)、電話番号については1行でバリデーションができちゃいます。

JAMValidatingTextField *emailTextField = [[JAMValidatingTextField alloc] init];
emailTextField.validationType = JAMValidatingTextFieldTypeEmail;

ブロックタイプのバリデーションの設定

JAMValidatingTextField *emailTextField = [[JAMValidatingTextField alloc] init];
emailTextField.validationBlock = ^{
if (self.blockTextField.text.length == 0) {
return JAMValidatingTextFieldStatusIndeterminate;
}
if (self.blockTextField.text.length > 5) {
return JAMValidatingTextFieldStatusValid;
}
return JAMValidatingTextFieldStatusInvalid;
};

Delegateプロトコルのバリデーションの設定

@interface View () <JAMValidatingTextFieldValidationDelegate>
@end
-(void) layoutSubviews {
[super layoutSubviews];
textField.validationDelegate = self;
}
- (JAMValidatingTextFieldStatus)textFieldStatus:(JAMValidatingTextField *)textField;
{
if (textField.text.length == 0) {
return JAMValidatingTextFieldStatusIndeterminate;
}
return [textField.text rangeOfString:@"P"].location != NSNotFound;
}

正規表現形式のバリデーションの設定

正規表現のバリデーションもできます!

JAMValidatingTextField *emailTextField = [[JAMValidatingTextField alloc] init];
emailTextField.validationRegularExpression = [NSRegularExpression regularExpressionWithPattern:@"[0-9]{5}" options:0 error:nil];
emailTextField.required = YES;

サンプルソース

作者さんが作っているサンプルソースです。これを気付くまで結構つらかったです^^;

Extending UITextField to Have Validation | Jeff Menter’s Software Blog

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍