我有一個帶有工具欄的導航控制器。當鍵盤出現時,我讓工具欄也出現在鍵盤的頂部。當我關閉鍵盤時,工具欄消失,在屏幕底部留下一個黑色的矩形,工具欄應該沒有鍵盤。隱藏鍵盤時工具欄消失
下面是如何初始化工具欄:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.navigationController setToolbarHidden:NO];
// this makes sure the toolbar appears on top of the keyboard
// instead of going below it.
// _nameText is a UITextField
_nameText.inputAccessoryView = self.navigationController.toolbar;
}
這是我如何隱藏鍵盤:
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
[self.navigationController setToolbarHidden:NO]; // this doesn't help
return NO;
}
我試着也做的[self.view setNeedsLayout]
,但沒有奏效。
編輯:我懷疑這可能與我分配工具欄作爲我的文本字段的輸入附件視圖的事實。我認爲當鍵盤消失時,文本字段會隱藏它的附件視圖。我仍然不知道如何重寫該行爲。
編輯2:我發現self.navigationController.toolbar.superview
是nil
鍵盤消失後。
嘗試再次將'self.navigationController.toolbar'添加到視圖(無鍵盤)。 – tipycalFlow 2012-04-05 05:28:35
試過了,不起作用。工具欄:(1)出現在屏幕的頂部,(2)瞬間消失。我試過'[self.view addSubview:self.navigationController.toolbar]'。 – Macondo2Seattle 2012-04-05 05:32:13
看起來您已將工具欄移出可見性。請將您的代碼發佈到虛擬鍵盤上方以及隱藏鍵盤時移動工具欄。在隱藏鍵盤後,您可以嘗試'NSLog'工具欄的框架 – tipycalFlow 2012-04-05 05:44:31