3

こんにちは、私は 1 つの UITextField を簡単に処理していました。たとえば、UITextField のデリゲートをビュー コントローラーに設定し、そのようなメソッドを実装します。

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{

    // Removes the keyboard from the screen
    [self.textFieldProperty1 resignFirstResponder];


    return YES;
}

しかし、UITextField が 2 つある場合はどうなるでしょうか。両方のデリゲートは引き続きビュー コントローラーになります。そして、上記の方法をどのように実装しますか?このような?

 - (BOOL)textFieldShouldReturn:(UITextField *)textField
    {

        // Removes the keyboard from the screen
        [self.textFieldProperty1 resignFirstResponder];
        [self.textFieldProperty2 resignFirstResponder];


        return YES;
    }
4

3 に答える 3

4

デリゲートをプロパティに渡すときにメソッドを変更すると、どの textField メソッドが呼び出されたかが自動的に識別されます。

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{

    // Removes the keyboard from the screen
    [textField resignFirstResponder];


    return YES;
}
于 2013-07-26T08:06:03.513 に答える
1

ファーストレスポンダーを辞任するだけの場合、これは次のようになります。

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];
}

後処理を追加したい場合は、次のようにします。

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    [textField resignFirstResponder];

    if (textField == self.textFieldProperty1) {
        //process property 1 here
    } else {
        // process property 2 here 
    }
}

UITextFieldプロパティまたはオブジェクト (またはどちらか)へのその他の適切な参照を保持していない場合は、UIView tagプロパティを使用してそれらを識別し、それらを区別することができます。

于 2013-07-26T08:21:07.763 に答える