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 () @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のヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!