2011-07-28 27 views
5

我嘗試隱藏iPad上的鍵盤,但我不知道爲什麼resignFirstResponder不起作用。 但popToRoot工作良好。resignFirstResponder不工作?

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    NSString *desc = [NSString stringWithFormat:@"%@",[descTF text]]; 
    [textField resignFirstResponder]; 
    [self.navigationController popToRootViewControllerAnimated:YES]; 


    return YES; 
} 

所以你能指導我該怎麼做?

+0

http://stackoverflow.com/questions/3124828/resignfirstresponder-not-hiding-keyboard-on-textfieldshouldreturn –

+0

我試圖把 - (BOOL)disablesAutomaticKeyboardDismissal { 返回NO; } 在我的代碼下 - (BOOL)textFieldShouldReturn:(UITextField *)textField {...}但鍵盤仍然沒有隱藏。 – crazyoxygen

+0

在我發佈的鏈接中,問題可能是Apple的一個錯誤。 –

回答

19

該字段是否在UIModalPresentationFormSheet?如果是這樣,這是一個已知的問題,你不能解除鍵盤編程,直到視圖控制器被解僱。

UPDATE:根據this thread從Apple開發者論壇,對於此的可能的解決方法是從實現disablesAutomaticKeyboardDismissal方法的導航控制器子類內呈現片視圖控制。所以像這樣:

MyViewController *myViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil]; 
CustomNavigationController *navController = [[CustomNavigationController alloc] initWithRootViewController:myViewController]; 
theNavigationController.modalPresentationStyle = UIModalPresentationFormSheet; 
[self presentModalViewController:theNavigationController animated:YES]; 
+0

添加了可能的解決方法並鏈接到Apple Developer Forums線程。 – samvermette

0

您是否實施了UITextFieldDelegate?如果你已經實現了這一點,那麼它應該工作。

+0

我已經添加了。並且還鏈接刪除@xib文件。 T^T但它仍然沒有隱藏。 – crazyoxygen

+0

'textField.returnKeyType = UIReturnKeyDone'? – Legolas

+0

errr你能指導我該怎麼做「textField.returnKeyType = UIReturnKeyDone」? – crazyoxygen

1

你永遠不應該有機會發送-resignFirstResponder。你應該做的只是發送-endEditing:YES到有問題的視圖。

7

若要跟進samvermette的回答,如果它位於UIModalPresentationFormSheet之內,則現在可以覆蓋disablesAutomaticKeyboardDismissal方法以獲得所需的行爲。將以下方法添加到您的班級,UITextFieldsUITextViews將響應resignFirstResponder。

- (BOOL)disablesAutomaticKeyboardDismissal { 
    return NO; 
} 
+0

酷!有效! –

+1

+1這應該確實是選定的答案(顯然,原始選定答案一次是正確的)。謝謝你。 – Firo

0

(道歉......這是在哪裏,我張貼此修復程序的StackOverflow的站點上的第四名。)

我曾與XCode的5 &巨大問題的iOS 7,試圖讓屏幕鍵盤上隱藏。

最終,我找到了一個非常簡單的解決方案:我只是在我的表格中禁用了UITextFields。神奇的是,這足以讓屏幕鍵盤滑開。

更多細節here

出人意料的是,這甚至適用於模態UIViewControllers。是的,它讓我感到驚訝!

相關問題