2015-10-24 11 views
7

RxSwiftrxSwift में "पूर्ण" वापसी कुंजी प्रेस ईवेंट को कैसे संभालें?

की खोज करते समय मुझे केवल textField.rx_text.asObservable() संपत्ति मिली, जो हर कीबोर्ड बटन को हिट करता है।

लेकिन हम "खोज" या "किए गए" बटन को कैसे दबाएंगे? मैं केवल इन कार्रवाइयों के बाद खोज को आग लगाना चाहता हूं, न कि "जैसे ही आप लिखते हैं"।

उत्तर

19

आप इस तरह UIControlEvents की सदस्यता ले सकते:

textField.rx_controlEvents(.EditingDidEndOnExit).subscribeNext { print("return pressed") }

+0

के रूप में यह रैप करने के लिए क्या यह संभव है एक अवलोकन योग्य? जब आप अगर बाहर टैप कीबोर्ड इस्तीफा देने के लिए चाहते हैं 'textField.rx_controlEvents (.EditingDidEndOnExit) .asObservable()' – alex

+0

हाँ, यह कोशिश टेक्स्टफील्ड का दोनों परिदृश्यों को देखा जाता है और अप्रत्याशित व्यवहार बनाता है। – louoso

+1

सबसे महत्वपूर्ण सवाल यह है कि नहीं इस ControlEvent –

2

में Rxswift 3,0

textField.rx.controlEvent([.editingDidEndOnExit]) 
     .subscribe(onNext:{text in 
      print(text) 
     }).addDisposableTo(disposeBag) 
+2

'डिस्प्लेज्ड (द्वारा: डिस्पोजेबैग)' ** 'addDisposableTo' बहिष्करण के रास्ते पर है। –

2

RxSwift 4 में:

textField.rx.controlEvent([.editingDidEndOnExit]).subscribe { text in 
    print(text) 
}.disposed(by: disposeBag) 
संबंधित मुद्दे