我在这个问题上苦苦挣扎了一段时间......我想通了。我认为touchesBegan覆盖函数在主视图上侦听:ViewController 的情节提要树上的第一个!我很想发布我的故事板的图像以更清晰,但我不能!;)
无论如何,如果您有子视图,它们可能会覆盖主视图......以这种方式触摸不会“到达”主视图。
为避免这种情况,您必须将Attribute Inspector中的Background属性设置为所有 SUBVIEWS的默认值。这样背景将是透明的,触摸将能够到达主视图。
如果您不想将背景设置为透明,您可以执行以下操作:
- 添加最后一个视图的出口(背景设置)
- 添加轻击手势识别器
- 处理处理键盘的水龙头
ES。
在属性中:
//The last view's outlet
@IBOutlet weak var ContainerView: UIView!
在 viewDidLoad() 中:
let tap = UITapGestureRecognizer(target: self, action: Selector("handleTap:"))
self.ContainerView.addGestureRecognizer(tap)
外部:
func handleTap(recognizer: UITapGestureRecognizer){
self.view.endEditing(true)
}