2017-08-14 224 views
0

林新在RxSwift,我想用UITapGestureRecognizer用於關閉鍵盤:無法識別的選擇

let tapGest = UITapGestureRecognizer() 
    tapGest.rx.event.subscribe(onNext: {[weak self] _ in 
     self?.view.endEditing(true) 
    }).disposed(by: disposeBag) 
    view.addGestureRecognizer(tapGest) 

但是當我使用的手勢,應用程序與此錯誤終止:

***終止應用程序由於未捕獲的異常 'NSInvalidArgumentException',原因: ' - [TtGC7RxCocoa13GestureTargetCSo22UITapGestureRecognizer事件處理程序:]:無法識別的選擇發送到實例0x600000446bd0'

+0

檢查我的答案,讓我通知任何問題 – Jaydeep

回答

0

在RxCocoa中有助手方法將點擊手勢放到視圖上。從那裏,你可能想過濾手勢識別器的狀態,所以你不會拿起所有不重要的事件。喜歡的東西:

view.rx.tapGesture() 
    .filter { $0.state == .ended } 
    .subscribe(onNext: { _ in 
     // Do something 
    }) 
    .disposed(by: disposeBag) 
1

雨燕3.0

我有看到你的問題,並嘗試在我的項目實施。基於此,我已經找到解決方案來做到這一點。希望這也能幫助你。

let tapGest = UITapGestureRecognizer() 
view.addGestureRecognizer(tapGest) 

    tapGest.rx.event.bind { (recognizer) in 
     self.view.endEditing(true) 
    }.disposed(by: disposeBag) 
+0

謝謝,但沒有奏效:(,我使用的Xcode 9.0測試版4,和RxSwift 4.0.0-alpha.0 –