2012-11-03 114 views
0

我有一个由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” 。

回答

0

尝试增加一个行:

[passwordTextField becomeFirstResponder]; 
+0

感谢您的回复 - 但是我的断点不被解雇textFieldDidBeginEditing里面,当我点击文本字段 –

+0

父视图控制器必须实现这个委托:UITextFieldDelegate - 尝试在你的视图控制器下实现它。如果这不起作用,那么您可能需要通过导航栏来实现它。为了达到这个目的,你需要为实现这个协议的UINavigationbar实现一个类别。喜欢它在这里完成:http://developer.apple.com/library/ios/#samplecode/SimpleFTPSample/Listings/CreateDirController_m.html#//apple_ref/doc/uid/DTS40009243-CreateDirController_m-DontLinkElementID_9 –

+0

我倾向于相信你有passwordTextField的类应该实现UITextFieldDelegate,它会工作。像@interface YourClass()。我高度认为这将是你的UITableViewController派生控制器。 –

相关问题