私はしばらくこの問題に苦労していました...そして私はそれを理解します。touchesBeganオーバーライド関数は、ViewController のストーリーボード ツリーの最初のビューであるメイン ビューをリッスンしていると思います。ストーリーボードの画像をもっと明確にするために投稿したいのですが、できません! ;)
とにかく、サブビューがある場合、それらはメイン ビューをカバーする可能性があります...この方法では、タッチはメイン ビューに「到達」しません。
これを回避するには、 Attribute InspectorのBackgroundプロパティをDefault for ALL THE SUBVIEWSに設定する必要があります。このようにして、背景が透明になり、タッチがメイン ビューに到達できるようになります。
背景を透明に設定したくない場合は、次の方法があります。
-最後のビューのアウトレットを追加します (背景セットあり)
-タップジェスチャ認識機能を追加
-キーボードを配置したタップを処理します
エス。
プロパティで:
//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)
}