我有一個視圖(其中幾個實際上)與底部的標準搜索欄。當用戶觸摸搜索欄時,我需要向上移動搜索欄,使其不被鍵盤隱藏,然後在鍵盤被解除時再次向下。鍵盤不通的間歇性故障
我這樣做的方式與其他人一樣,通過觀察UIKeyboardWillShowNotification
和UIKeyboardWillHideNotification
。從這些通知中,我得到了鍵盤的高度,並告訴我在哪裏放置搜索欄的底部邊緣。它完美的工作,除了罕見的情況下,當搜索欄沒有動畫,或動畫不夠遠,消失在鍵盤後面。在我和我的QA人員在iPhone和iPod上進行測試的數百次嘗試中,我已經看到了這一次。只有一次,當鍵盤出現時,我看到搜索欄飛出屏幕頂部。我們從來沒有在模擬器上看到過這種情況,我們在iPod上看到的頻率比iPhone要高。我們正在運行iOS 4.x,主要是4.3.3。
所以我可以想到兩種可能性。一個是偶爾UIKeyboardWillShowNotification
沒有發送,另一個是通知中的數據是錯誤的。第二個將解釋搜索欄飛離屏幕頂部的一種情況。
然後當然有可能我的代碼在一些非常迂迴的方式是錯誤的;但情景非常簡單 - 進入視圖並點擊搜索欄 - 我無法看到代碼中的錯誤如何導致這些罕見的間歇性故障。
如果有人能提供見解,我會非常感激。
我發現鍵盤通知給你的矩形不適應寬度和高度的設備的方向。您確定您正確地將座標轉換爲包含搜索欄的視圖的座標系嗎? –
我在做鍵盤動畫時考慮了設備的方向,只要我不在運行4.2.1的舊版iPod上運行Release版本,它就可以可靠地工作。 –