多分簡単な質問ですが、正しい方法を理解できません。異なるUITextField間で検証コードを共有
私はUITextField
です。私はいくつかのテキストフィールドを(彼らは同じコントローラどこに属していないので
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
// do validation here
// return YES or NO depending on previous validation
}
:私はこのテキストフィールド内に挿入されたテキストを検証する必要があるので、私は現在、次のようなUITextFieldDelegate
方法- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
を使用しています検証が行われます)、テキストフィールドの検証コードを複製したくない場合、同様の検証を一元化するためのエレガントな方法をどのように達成できますか?サブクラス化が正しいかどうかはわかりませんが、この場合、同じアプリケーションのさまざまな部分で同じ委任方法(上記の方法)を使用する必要があります。
ありがとうございます。
+1しかし、すべてのtextFields *に対して同じデリゲートを使うことができますか? * UITextFields *は、それらを含む異なるView Controllerに属することができます。ありがとうございました。 –
私はあなたのことを何と呼んでいるのですか? 2つ以上のUITextFieldが異なるView Controllerに存在することはできませんが、同じデリゲートを持つ理由はありません。 – yuji
私は参照してください。あなたは、* UITextFieldDelegate *を "実装"(採用)する異なるクラスオブジェクトを作成し、それが必要な各コントローラ内でインスタンス化することをお勧めします。次に、そのデリゲートをテキストフィールドの指定されたデリゲートとして設定します。そうですか? –