2013-10-11 42 views
4

我正在開發一個聊天應用程序,並且在鍵盤顯示方法時發現問題。我正在使用UIKeyboardDidShowNotification將我的聊天文本視圖和按鈕移動到鍵盤上。但是在顯示單詞建議或將鍵盤更改爲其他語言(如日語)時,我的聊天文本視圖會被單詞整理工具欄隱藏。 UIKeyboardNotification獲得的鍵盤高度較晚。那麼,如何檢測該建議工具欄是否顯示?如何檢測鍵盤頂部的單詞建議欄是否顯示?

- (void)keyboardWasShown:(NSNotification*)aNotification 
{ 
    NSDictionary *userInfo = [aNotification userInfo]; 
    CGSize kbSize = [[userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; 
    CGRect rectTable = rTable; 
    rectTable.origin.y -= kbSize.height; 
    CGRect rectToolBar = rToolbar; 
    rectToolBar.origin.y -= kbSize.height; 

    [UIView animateWithDuration:0.25f 
        animations:^{ 
         [self.tableView setFrame:rectTable]; 
         [self.toolBar setFrame:rectToolBar]; 
        } 
    ]; 
} 

如果改變TextView的位置doen't工作,有另一種方式把TextView的在鍵盤的頂部?

+0

任何代碼的一部分,它張貼在這裏。我會幫你的? –

+0

我用代碼更新。 – Gates

回答

0

做了一個條件,如果用戶鍵入文本是在第一行,然後設置[textview setScrollEnabled:NO]其他設置YES

+0

我不想這樣做。只想將textview放置在鍵盤的suggesstion詞條頂部。 – Gates

+0

你在獨立的uiview中顯示建議嗎? –

+0

不,使用日語鍵盤輸入時的單詞sugesstion欄。 – Gates

10

而不是使用這個的,

CGSize kbSize = [[userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; 

試試你寫了這個

CGSize kbSize = [[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size; 
相關問題