7

キーボードを終了するための「完了」ボタンを作成できません。

これをcontroller.hファイルで使用しました

- (IBAction)textFieldDoneEditing:(id)sender;

これは私のcontroller.mファイル用です

- (IBAction)textFieldDoneEditing:(id)sender {
  [sender resignFirstResponer];
}

.xib部分の配線に混乱しています。

4

3 に答える 3

23

コントローラーを IB の UITextField/UITextView のデリゲートにするか、次のようなコードからtextField.delegate = self;

編集済み:このためには、コントローラを UITextFieldDelegate/UITextViewDelegate のデリゲートとして宣言する必要があります

@interface Controller : <UITextFieldDelegate> { ...

、次にメソッドをオーバーライドします。

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

UITextField および

-(BOOL)textViewShouldEndEditing:(UITextView *)textView{
    [textView resignFirstResponder];
    return YES;
}

UITextView用

于 2012-04-06T05:13:38.090 に答える
1

.xib で、テキスト ビューを右クリックし、[ファイルの所有者] にドラッグして、[委任] をクリックします。今働くべきですか?

編集:おっと、すみません、私はばかです、他の人の言うことをしてください。ただし、コードでデリゲートを設定する方法がわからない場合は、IB で私のやり方で行うことができます。

于 2012-04-06T05:14:56.457 に答える
0

最初の貢献をさせてください: 複数のテキスト フィールドがある場合は、それらを @property (強力で非アトミック) にグループ化します

*.h

@property (strong, nonatomic) IBOutletCollection(UITextField) NSArray *collectingData;

*.m

-(BOOL)textFieldShouldReturn:(UITextField *)boxes
    {
        for (UITextField *boxes in collectingData) {
        [boxes resignFirstResponder];
    }
    return YES;

}
于 2012-04-19T08:27:06.383 に答える