0

1つのテキストフィールドは英字のみを取り、もう1つは英数字です。そのうちの1つについて、ViewControllerでshouldChangeCharactersInRangeを定義しました。他のuitextfieldのロジックをどこで定義するのかわかりません。

誰かがこれがどのように機能するかを理解するのを手伝ってもらえますか?

4

2 に答える 2

2

両方に同じデリゲートがある場合、両方とも同じshouldChangeCharactersInRangeメソッドで検証されます。そのメソッドにif-else句を入れて、どのテキストフィールドが送信者であるかを確認する必要があります。比較を行うには、2つのテキスト項目にIBOutletsが必要です。

于 2012-12-16T00:08:27.940 に答える
1

いくつかのオプションがあります。テキストフィールド用にiVarを作成した場合、どちらが呼び出しているかを確認するのshouldChangeCharactersInRangeは簡単==です。以下に、別のオプションとして、テキストフィールドにタグを割り当て、送信テキストフィールドのタグを確認することも示しました。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    //Your first option
    if (textField == myFirstTextField) {
        //
    }else{
        //
    }
    //another option, if you don't want to create iVars you can assign tags to your text fields and do this
    if (textField.tag == 99) {
        //
    }else{
        //
    }
}
于 2012-12-16T00:12:22.737 に答える