4

私は奇妙な設定をしています。

View呼び出されたView1ViewController呼び出しviewController1があります

ではIBView1はViewController1の子です。

View1内で、コード a を使用して作成しUITextField、サブビューとして追加しました。

私のViewcontroller中で、私は持っていますviewController1 : UIViewController <UITextFieldDelegate>

..View1内のテキストフィールドがキーボードの「完了」ボタンを取得したら、キーボードを辞任したいので、

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

問題は、TEXTFIELD (ビューコントローラーで定義) とビューで定義されたテキストフィールドをどのように接続するかです。

interfaceBuilder で何かをする必要がありますか?

多分私はここで完全にオフです....

いくつかのヒントは大歓迎です

4

2 に答える 2

14

ケンドールは正しいです。viewController1 をテキスト フィールドのデリゲートとして設定する必要があります。

上記のコメントでは、textFieldShouldReturn メソッドを誤解していると思います。UITextField* がパラメーターとしてこのメ​​ソッドに渡されるため、デリゲートは返されるフィールドを確認し、それを許可するかどうかを決定できます。あなたの場合、テキストフィールドは1つしかないので、ファーストレスポンダを辞任してYESを返すだけです(私のコードは以下です)。

この textFieldShouldReturn 関数にブレークポイントを設定してみてください。呼ばれてる?

- (BOOL)textFieldShouldReturn:(UITextField*)aTextField
{
    [aTextField resignFirstResponder];
    return YES;
}
于 2009-03-26T07:23:50.797 に答える
7

テキスト フィールドのデリゲート プロパティを IB のビュー コントローラーに接続します (そのビューのファイルの所有者である必要があります)。また、View Controller ヘッダーで、プロトコルに準拠していることに注意してください。

または、View Controller の viewDidLoad メソッドで texfield.delegate プロパティを self に設定することもできます。

于 2009-03-26T05:11:52.237 に答える