我有一个由UITableViewController控制的tableview。 在这一类的UITableViewController我已经通过添加这些行到我的viewDidLoad方法增加了UITextField
编程我UINavigationItem:以编程方式将UITextField添加到下拉列表中
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被点击“textfield”时被触发 - 所以我怀疑我将文本字段添加到UITableViewController的事实是造成问题的原因。
您可能会认为 - 为什么您没有将“uinavigationbutton”添加到“NavigationBar”中,而是我不能将uidropdownmenu作为单击按钮时要调用的uidropdownmenu接受“UITextField” 。
感谢您的回复 - 但是我的断点不被解雇textFieldDidBeginEditing里面,当我点击文本字段 –
父视图控制器必须实现这个委托:UITextFieldDelegate - 尝试在你的视图控制器下实现它。如果这不起作用,那么您可能需要通过导航栏来实现它。为了达到这个目的,你需要为实现这个协议的UINavigationbar实现一个类别。喜欢它在这里完成:http://developer.apple.com/library/ios/#samplecode/SimpleFTPSample/Listings/CreateDirController_m.html#//apple_ref/doc/uid/DTS40009243-CreateDirController_m-DontLinkElementID_9 –
我倾向于相信你有passwordTextField的类应该实现UITextFieldDelegate,它会工作。像@interface YourClass()。我高度认为这将是你的UITableViewController派生控制器。 –