2017-08-14 226 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 –