2016-05-30 98 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; 
} 

我天衣它会为你工作:)