2016-05-30 102 views
0

就像在YouTube和Facebook應用程序上一樣,我嘗試實現在鍵盤上顯示的輸入,如果它被聚焦。正常的行爲是鍵盤覆蓋輸入。我的第一個想法是將輸入的位置更改爲「固定」,但「固定」在React Native上不可用。如果焦點位置在鍵盤上方,是否還有其他方法?通過鍵盤顯示輸入

Facebook keyboard input

回答

0

您需要根據鍵盤的高度把你輸入的位置時它是開放的。

This project提供了一個現成的組件,放置在視圖的底部,當它可見時它將自己的尺寸擴展到鍵盤的大小,它在android和ios上非常適用。

+0

這並不在我們的項目工作。我們的輸入是在一個ScrollView中。 – user2891491

+0

在這種情況下,您可以將分隔符放在ScrollView之後,並且它應該把所有東西都拿出來。如果有機會將輸入信息顯示在屏幕的上半部分,那麼您可能需要做更多的調整,但是您說「固定」定位對您有幫助,所以我認爲情況並非如此。 –

0

PLZ使用的addObserver爲keybord顯示和隱藏在viewwill apperar

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(KeyboardWillShow:) name:UIKeyboardDidShowNotification object:nil]; 

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(KeyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; 

採取

IBOutlet NSLayoutConstraint *messageViewBottom; 

是您的視圖底部約束IBOutlet中。

上keyboardwillshow

-(void)KeyboardWillShow:(NSNotification*)keyboardInfo 
{ 


     CGSize frame=[[[keyboardInfo valueForKey:@"userInfo"]valueForKey:@"UIKeyboardFrameEndUserInfoKey"]CGRectValue].size; 

     self.messageViewBottom.constant=frame.height; //add keyboard height to bottom constraint so your view go up when keyboard show 




} 

上keyboardhide

-(void)KeyboardWillHide:(NSNotification*)keyboardInfo 
{ 
    self.messageViewBottom.constant = 0; 
} 

我天衣它會爲你工作:)