0

UITableViewController によって制御されるテーブルビューがあります。この UITableViewController クラスでは、UITextFieldこれらの行を viewDidLoad メソッドに追加して、プログラムで UINavigationItem に追加しました。

CGRect passwordTextFieldFrame = CGRectMake(20.0f, 100.0f, 280.0f, 31.0f);
UITextField *passwordTextField = [[UITextField alloc] initWithFrame:passwordTextFieldFrame];
passwordTextField.placeholder = @"Password";
passwordTextField.backgroundColor = [UIColor whiteColor];
passwordTextField.textColor = [UIColor blackColor];
passwordTextField.font = [UIFont systemFontOfSize:14.0f];
passwordTextField.borderStyle = UITextBorderStyleRoundedRect;
passwordTextField.clearButtonMode = UITextFieldViewModeWhileEditing;
passwordTextField.returnKeyType = UIReturnKeyDone;
passwordTextField.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
passwordTextField.tag = 2;
passwordTextField.autocapitalizationType = UITextAutocapitalizationTypeNone;
passwordTextField.delegate = self; // ADD THIS LINE
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:passwordTextField];

UITextFieldナビゲーションバーに正しく表示されますが、クリックすると textFieldDidBeginEditing が起動しません。

textFieldDidBeginEditing メソッドとともに、ヘッダー ファイルに を追加しました。

私は UIViewController によって制御されるビューでまったく同じことをしようとしましたが、ここで「テキストフィールド」をクリックすると textFieldDidBeginEditing が発生します - したがって、テキストフィールドを UITableViewController に追加しているという事実が原因であると思われます。

あなたは思うかもしれません-代わりに「uinavigationbutton」を「NavigationBar」に追加しなかったのはなぜですか-しかし、ボタンがクリックされたときに呼び出したいuidropdownmenuは「UITextField」のみを受け入れるため、できません。

4

1 に答える 1

0

もう1行追加してみてください:

[passwordTextField becomeFirstResponder];
于 2012-11-03T09:34:25.973 に答える