2017-07-19 50 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