2017-07-19 40 views
0

我有一个UIView(来自UIViewController)接收触摸并删除键盘。在同一屏幕上,我有一个显示密码的UIButton,当我在UIButton中触摸时,触摸进入UIView并移除键盘。如何防止父UIView从UIButton接收触摸?

如何防止了UIView从UIButton的接收触摸?

我想尝试.isExclusiveTouch但没有奏效。

编辑

我的扩展,卸下键盘:

import UIKit 

public extension UIViewController { 
    func hideKeyboardWhenTappedAround() { 
     let tap: UITapGestureRecognizer = UITapGestureRecognizer(
      target: self, 
      action: #selector(UIViewController.dismissKeyboard) 
     ) 
     tap.cancelsTouchesInView = false 
     view.addGestureRecognizer(tap) 
    } 

    func dismissKeyboard() { 
     view.endEditing(true) 
    } 
} 

在我的ViewController,按钮:

self.myButton.addTarget(self, action: #selector(self.myButtonHandler), for: .touchUpInside) 
self.view.addSubview(self.myButton) 
+0

待办事项你有一些代码可以告诉我们?它会帮助我们。谢谢! – dfd

+0

是的!加入现在的问题... – user2921672

+0

@ user2921672我认为你的问题是,你的UITextField是失去焦点,我的意思是,从第一响应去除,这就是为什么键盘被驳回,但这不涉及UIButton的掠过一丝对上海华 –

回答

1

不要使用,当你触摸的视图(未按钮)任何部分的手势只使用此代码

override func touchesBegan(_ touches: Set<UITouch>, with event:UIEvent?) { 
    if let touch = touches.first { 
     view.endEditing(true) 
    } 
    super.touchesBegan(touches, with: event) 
} 

这里键盘将代码被解雇(view.endEditing(真))

0

尝试设置userIntrecationEnabled为false。

//example 
yourView.isUserInteractionEnabled = false 

如果视图的用户交互被禁用,它将忽略触摸。

+0

如果我试试这个,我的按钮不工作... – user2921672

+0

你可以尝试禁用的UIButton如果你不想它是可点击 – 0rt

+0

我想要的UIButton的工作,但不要水龙头传播到了UIView 。 – user2921672