1

私は iOS 5 を使用しており、UITextFieldDelegate で TextField を使用しようとしていますが、まさに私が望むように機能します (ただし、最初のビューでのみ)。次のビューで機能しない理由がわかりません。

簡単な例として、新しいプロジェクト (ViewController) を作成しました。そこで、別のビュー (SecondViewController) に接続するボタンを 1 つ追加しました。SecondViewController には、TextField が 1 つあります。この textField では、textFieldShouldReturn を使用したいと思います。しかし、このメソッドは呼び出されていないようです。私が知っていることは、デリゲートを ViewDidLoad に記述する必要があるということです。myTextField.delegate = self; と書くべきですか?? しかし、私はそこで何かが間違っていると思います。私はデバッグを使用しましたが、常にその位置で問題が発生しています。教えてください、何が問題なのですか?どうすれば解決できますか;(

前もって感謝します.....

ここに私のコードがあります(最初のビュー(ViewController)で動作します。残念ながらここではありません(SecondViewController):


SecondViewController.h

@interface SecondViewController : UIViewController<UITextFieldDelegate>

@property (strong, nonatomic) IBOutlet UITextField *myTextField;

@end

SecondViewController.m

@implementation SecondViewController

@synthesize myTextField;


- (void)viewDidLoad{

    [super viewDidLoad];

    myTextField.delegate = self; // here i get the problem
}

-(BOOL) textFieldShouldReturn:(UITextField *)textField{   // this method is not being called


    [textField resignFirstResponder];
    NSLog(@"is called!");
    NSString *valueMyTextField = myTextField.text;
    NSLog(@"%@", valueMyTextField);

    return YES;
}
4

2 に答える 2

2

問題は解決しました... :) 問題は からfirstViewへの接続でしたsecondViewaddSubViewコントローラーを追加する場合は、使用しないでください。使用presentModalViewController:)私のような同じ問題がある場合に備えて、お役に立てば幸いです。

于 2011-11-22T12:30:35.830 に答える
0

nib ファイルで、テキスト フィールドの [リターン キーの自動有効化]チェック ボックスがオンになっているかどうかを確認してください。

于 2011-11-21T10:21:55.957 に答える