就像在YouTube和Facebook应用程序上一样,我尝试实现键盘上显示的输入,如果它被聚焦。正常的行为是键盘覆盖输入。我的第一个想法是在聚焦时将输入的位置改为“固定”,但在React Native上没有“固定”。如果它具有焦点,是否还有其他方法可以将元素放在键盘上方?
答案 0 :(得分:0)
您需要根据键盘高度打开输入位置。
This project提供了一个现成的组件放置在视图的底部,只要它可见,它就会根据键盘的大小调整大小,它在android和ios上运行良好。
答案 1 :(得分:0)
使用此addObserver进行键盘显示并隐藏在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
}
键盘上的
-(void)KeyboardWillHide:(NSNotification*)keyboardInfo
{
self.messageViewBottom.constant = 0;
}
我觉得它对你有用:)