我正在創建一個類似於iPad的iMessage應用程序的應用程序,它可以進行消息傳遞。因此,在顯示鍵盤時,在消息視圖和輸入附件視圖的底部有一個輸入視圖。此外,當停放或取消鎖定鍵盤時,必須正確調整消息視圖的大小。iPad分離鍵盤
我遇到的問題是來自UIKeyboardWillChangeFrameNotification的通知數據不一致。
首先,有3種方式,用戶可以取消停靠鍵盤:
- 按下並按住右下鍵,然後向上滑動
- 按下並按住右下鍵,當屏幕上彈出菜單中選擇「取消停靠」
- 按下並按住右下鍵,當屏幕上彈出菜單中選擇「拆分」
情形#1,從UIKeyboardWillChangeFrameNotification預告數據是組成ENT。下面是數據:
userInfo = {
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
}
情形#2,#3中的數據是不一致的,這裏是我得到:
userInfo = {
UIKeyboardAnimationCurveUserInfoKey = 0;
UIKeyboardAnimationDurationUserInfoKey = "0.25";
UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
UIKeyboardCenterBeginUserInfoKey = "NSPoint: {384, 872}";
UIKeyboardCenterEndUserInfoKey = "NSPoint: {384, 1136}";
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
UIKeyboardFrameChangedByUserInteraction = 0;
UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, -264}, {768, 304}}";
}
什麼是奇數這裏要說的是,當我下的情況下監聽UIKeyboardDidChangeFrameNotification #2或#3,數據按預期進入:
userInfo = {
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 0}, {768, 304}}";
}
爲什麼通知數據不同?有沒有人找到明確的方法來檢測分割鍵盤事件?
自推出iPad Mini以來,這會變得更加困難。我甚至還沒有碰過iOS 7呢...... –
沒什麼區別。 216不是像素,其點參數與分辨率無關。但是這不適用於iPhone 4和5.而iPhone沒有分離鍵盤。他們改變形式因素。 – Bimawa
請注意,這不是一個好的解決方案。鍵盤高度根據語言環境,ios版本和設備而變化。 – capikaw