[英]Showing keyboard at the right time iOS7
在iOS 6中,我習慣在viewDidLoad
呈現鍵盤。
- (void)viewDidLoad
{
[super viewDidLoad];
[txtField becomeFirstResponder];
}
這樣,當navigationController推送新的viewController時,鍵盤已經存在,從左到右平滑地動畫,避免自下而上的動畫。
在iOS 7中,這種行為似乎已經破裂。
如果我在viewDidLoad
添加[txtField becomeFirstResponder]
,鍵盤會出現在推動動畫的中間,已經處於最終位置:令人不快的效果!!
我試圖在viewWillAppear
移動[txtField becomeFirstResponder]
,但最終結果沒有變化。
你知道一種方法來恢復iOS 6的行為,將新的viewController和鍵盤全部推到一起嗎?
編輯:使用計時器也不起作用...無論我設置什么時間延遲,鍵盤只在推動動畫結束時顯示。
到目前為止,我最好的嘗試是在viewWillLayoutSubviews
或viewDidLayoutSubviews
放置[txtField becomeFirstResponder]
。 不幸的是,這樣做在推送viewController時工作,但在彈出時沒有(鍵盤沒有出現)。
我已設法在viewWillLayoutSubviews
推斷您的變通方法以強制它起作用。
- (void)viewWillLayoutSubviews {
if (![self.textField1 isFirstResponder] && ![self.textField2 isFirstResponder] && ...) {
[self.textField1 becomeFirstResponder];
}
}
這對我來說都是有用的,無論是推入堆棧還是解雇模態視圖控制器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.