0

これは私のコードです:

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

    return YES;

}

これは.hファイルです:

#import <UIKit/UIKit.h>

@interface slEnterDataViewController : UITableViewController <UITextFieldDelegate>  {

    UITextField *txtSiteDesc;
    UITextField *txtDesc;
    UITextField *ssFS;
}

@property (nonatomic, retain) IBOutlet UITextField *txtSiteDesc;
@property (nonatomic, retain) IBOutlet UITextField *txtDesc;
@property (nonatomic, retain) IBOutlet UITextField *ssFS;

@end

txtSiteDescで機能しますが、他のいずれでも機能しません。問題はtextFieldShouldReturnメソッドにあると思います。「textField」の値をチェックして、それがどのフィールドであるかを確認してから、適切な「resignFirstResponder」を実行して戻ることができると思いました。私は近くにいますが(私は思います)、十分に近くありません。

助けていただければ幸いです。:D

4

2 に答える 2

0

txtSiteDesc他の2つのテキストフィールドに対してデリゲートを設定したが、設定していない可能性はありますか?これはtextFieldShouldReturn:、他のテキストフィールドではなく最初のテキストフィールドが呼び出される理由を説明します。delegate3つのテキストフィールドすべてのプロパティをself(self =ビューコントローラ)に設定していることを確認してください。

于 2012-03-09T23:59:41.077 に答える
0

私でさえこの問題に直面しました。これはあなたが探しているものです:

- (BOOL)textField:(UITextField *)theTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if([string hasSuffix:@"\n"])
    {
        [theTextField resignFirstResponder];
        return NO;
    }
    return YES;
}

これにより、キーボードのReturn/Doneなどを押したときにキーボードが非表示になります。

于 2013-05-30T20:49:21.507 に答える