Joe*_*aad 6 keyboard background hide uiscrollview ios
我开发了我的应用程序,之后,我发现我需要添加一个Scroll视图并在其中嵌入所有元素.在这样做之后,我注意到键盘外面的键盘没有消失.我知道因为IBAction绑定到ViewController而不是滚动器.滚动条不能有任何IBAction.有没有办法可以帮忙解决这个问题?在添加Scroll视图后,我已经搜索了很多并且丢失了隐藏键盘的信息.这一点不应该那么复杂.
谢谢!
Pei*_*Pei 20
iOS 7中最干净的方式:
scrollView.keyboardDismissMode = UIScrollViewKeyboardDismissModeInteractive;
Run Code Online (Sandbox Code Playgroud)
Swift版本:
scrollView.keyboardDismissMode = .interactive
Run Code Online (Sandbox Code Playgroud)
请试试这个:
UITapGestureRecognizer *yourTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(scrollTap:)];
[scrollView addGestureRecognizer:yourTap];
[self.view addSubview:scrollView];
Run Code Online (Sandbox Code Playgroud)
然后进去
- (void)scrollTap:(UIGestureRecognizer*)gestureRecognizer {
//make keyboard disappear , you can use resignFirstResponder too, it depends.
[self.view endEditing:YES];
}
Run Code Online (Sandbox Code Playgroud)
*非凡你说你必须将所有元素嵌入到scrollview中吗?这意味着你已经添加了类似uibutton的东西作为scrollview的子视图然后当你初始uibutton时你也应该添加动作,所以在scrollTap中只是[self.view endEditting如果你在uiscrollview中的某个点按下并且如果那个点是uibutton,它会激活uibutton的动作,因为它会停留在最上层,你将它添加为子视图,如果那个点不是按钮,所以scrollTap将激活.对不起,我没仔细看,但应该像我说的那样.
我认为你可以UITapGestureRecognizer为baseViewControlls视图注册一个,然后处理手势
- (void)handleTap:(UITapGestureRecognizer *)recognizer
{
if(yourScrollView.yourTextField.isFirstResponder)
{
[yourScrollView.yourTextField resignFirstResponder];
}
}
Run Code Online (Sandbox Code Playgroud)
或者当您的键盘显示时,您可以在键盘和 yourView 之间的 baseView 上添加一个透明的遮罩按钮,并在接收发件人时添加该按钮,如下所示:
- (void)maskButton:(id)sender
{
[_maskButton removeFromSuperView];
if(yourScrollView.yourTextField.isFirstResponder)
{
[yourScrollView.yourTextField resignFirstResponder];
}
}
Run Code Online (Sandbox Code Playgroud)