2012-11-03 59 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派生控制器。 –

相關問題