我們用顯示的鍵盤打開一個視圖,但是當後退按鈕被點擊時,視圖從右側滑出,而鍵盤僅在視圖消失時滑動。 如果我們在viewwilldisappear中調用resignFirstResponder,則視圖向右滑動,同時鍵盤向下滑動。 是否可以讓鍵盤滑出視圖?IPhones-讓鍵盤滑出視圖
回答
請嘗試在viewDidDisappear
方法中粘貼resignFirstresponder
。
**Set notificatins and use these methods.....Hope it solve problem:
First of all set your whole view in scrollView**
-(void)keyboardDidHide:(NSNotification *)notif
{
NSTimeInterval duration = 0.4;
[UIView animateWithDuration:duration animations:
^{
scrollView.contentSize=CGSizeMake(320,scrollOriginalFrame.size.height);
}];
keyboardVisible=NO;
}
-(void)keyboardDidShow:(NSNotification *)notif
{
scrollView.contentSize=CGSizeMake(self.view.frame.size.width, scrollOriginalFrame.size.height+235);
NSTimeInterval duration = 0.4;
[UIView animateWithDuration:duration animations:
^{
[scrollView setContentOffset:CGPointMake(0,162) animated:YES];
}];
keyboardVisible=YES;
}
**In viewDidLoad() add this**
//keyboard
scrollOriginalFrame=self.view.frame;
scrollOriginalFrame.size.height-=103;
scrollView.contentSize=scrollOriginalFrame.size;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardDidHide:) name:UIKeyboardWillHideNotification object:nil];
keyboardVisible=NO;
看起來我們沒有滾動視圖。而且它似乎也不起作用,keyboardDidHide在鍵盤開始滑動時被調用,此時視圖已經消失。 – gage 2012-04-27 04:58:30
在滾動視圖中移動視圖,並移動滾動視圖......而不是實際視圖 – 2012-04-27 05:40:33
還有就是做你想做的沒有標準的方法,但是...
基本上,鍵盤只是一個視圖中,所有其他窗口的頂部在它自己的UIWindow呈現。
因此,理論上,您需要做的是找到鍵盤視圖並將其沿期望的方向移動。我認爲你應該使用transform
財產,不要搞砸frame
。
Class keyboardClass = NSClassFromString(@"UIPeripheralHostView");
for (UIWindow *window in [[UIApplication sharedApplication] windows]) {
for (UIView *subview in window.subviews) {
if ([subview isKindOfClass:keyboardClass]) {
// that's keyboard
}
}
}
編輯:
如果你在談論的UINavigationController它推/彈出時的默認幻燈片動畫,然後,你只需要調用resignFirstResponder
在viewDidDisappear
和becomeFirstResponder
在viewWillAppear
你的文本視圖。這樣你的鍵盤就會隨着你的視角一起滑動。
它可以工作,但它仍有其他問題。鍵盤不是向右滑動,而是右下角。當我第二次進入視圖時,鍵盤可以滑入。 – gage 2012-04-27 07:03:33
鍵盤滑落,作爲標準鍵盤解除過程的一部分。我想你在你的viewWillDissapear方法中調用resignFirstResponder。也許你應該觀察鍵盤通知,然後取消它的原始動畫'[view.layer removeAllAnimations]'並執行你自己的動畫。 – 2012-04-27 07:31:33
removeallanimations無法防止鍵盤滑落,似乎系統在鍵盤隱藏後執行鍵盤動畫的計算。 – gage 2012-04-27 09:32:25
我已經測試過這個,它適用於iOS 5.1,但是,我不認爲這是推薦的行爲。
for (UIWindow *keyboardWindow in [[UIApplication sharedApplication] windows])
if ([[keyboardWindow description] hasPrefix:@"<UITextEffectsWindow"]) {
NSLog(@"%@", [keyboardWindow description]);
[UIWindow beginAnimations:@"fadeKeyboard" context:nil];
keyboardWindow.frame = CGRectMake(keyboardWindow.frame.origin.x + keyboardWindow.frame.size.width, keyboardWindow.frame.origin.y, keyboardWindow.frame.size.width, keyboardWindow.frame.size.height);
[UIWindow commitAnimations];
}
您也可以使用通知UIKeyboardWillHideNotification的鍵盤時,會躲起來,或者只是手動使用上面的代碼來檢測。
- 1. 如何讓圖像滑出視圖?
- 2. 使視圖向上滑動,爲鍵盤騰出空間?
- 3. 保持鍵盤上方的視圖 - 當出現鍵盤時
- 4. 當鍵盤出現時移動視圖
- 5. 退出鍵盤時離開FormSheet視圖?
- 6. 試圖讓轉盤動畫滑塊
- 7. 鍵盤滑出導致UIWebView左移
- 8. 2 UITextFields - 滑第一鍵盤出來,在
- 9. 如何在軟件鍵盤滑出時將視圖捕捉到軟件鍵盤的頂部邊緣?
- 10. 使用UIScrollView滑動並使用鍵盤向上移動視圖
- 11. 當用戶在滾動視圖內滑動時關閉鍵盤
- 12. 如何讓視覺鍵盤出現在我的UIToolBar上方?
- 13. Android - 如何讓鍵盤出現EditText
- 14. 如何在鍵盤出現時讓android父視圖保持位置?
- 15. 我無法讓用戶界面文本視圖鍵盤消失
- 16. 滑入和滑出動畫像鍵盤在cocos2d
- 17. 如何更改鍵盤滑入/滑出動畫的速度?
- 18. 鍵盤「滑動」Javascript事件
- 19. 移動視圖與鍵盤的問題。(鍵盤尺寸&&視圖回遷問題)
- 20. 在鍵盤出現時發出移動視圖Swift
- 21. 試圖讓Android鍵盤在活動啓動時彈出
- 22. 軟鍵盤不會在圖形視圖
- 23. 讓webview在滑動鍵盤時保持相同的內容?
- 24. iOS鍵盤擴展如何在鍵盤下添加子視圖
- 25. 鍵盤方向鍵導航與CBP圖像滑塊
- 26. 如何讓鍵盤消失?
- 27. 如何讓鍵盤消失?
- 28. 更改軟鍵盤彈出鍵盤的背景圖像
- 29. 鍵盤鍵圖標
- 30. 鍵盤沒有出現與滾動視圖在web視圖Android的
它不起作用。 – gage 2012-04-27 04:28:13
在這裏調用resignfirstresponder,當視圖消失時,視圖滑出並鍵盤滑出,同樣從不會調用resignfirstresponder或將其稱爲ad didunload。 – gage 2012-04-27 04:29:54