如何在RxSwift

时间:2018-01-06 15:52:21

标签: swift swift3 uitextfield rx-swift

我想在swift 3中使用RxSwift实现自动完成文本字段。

我在java中有这个代码并且它运行良好,但我不知道用RxSwift实现swift 3。 我在rxSwift中搜索了TextChange,但我找不到任何东西!

这是我的代码。

RxTextView.textChanges(mEtAddress)
                .map(CharSequence::toString)
                .debounce(100, TimeUnit.MILLISECONDS)
                .filter(s -> !TextUtils.isEmpty(s))
                .compose(bindUntilEvent(FragmentEvent.STOP))
                .flatMap(q -> mReactiveLocationProvider.getPlaceAutocompletePredictions(
                        q, new LatLngBounds(
                                new LatLng(SOUTHWEST_LATITUDE, SOUTHWEST_LONGITUDE),
                                new LatLng(NORTHEAST_LATITUDE, NORTHEAST_LONGITUDE)), null))
                .subscribe(buffer -> {
                    List<AutocompleteInfo> infos = new ArrayList<>();
                    for (AutocompletePrediction prediction : buffer) {
                        infos.add(new AutocompleteInfo(prediction.getFullText(null).toString(), prediction.getPlaceId()));
                    }
                    buffer.release();
                    mPlaceSuggestionsList.setAdapter(new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, infos));
                });

1 个答案:

答案 0 :(得分:1)

RxCocoa的反应式扩展需要UIKit。 UITextFied已扩展并具有属性rx。 您可以使用反应性文本属性:

textField.rx.text...