我有一个由 UITableViewController 控制的 tableview。在这个 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”。