如何在下拉列表中添加文本字段自动建议?

Posted

技术标签:

【中文标题】如何在下拉列表中添加文本字段自动建议?【英文标题】:How to add text field auto suggestions in a drop down list? 【发布时间】:2017-03-09 09:11:55 【问题描述】:

我在应用中有一个帐单地址页面。我必须记住用户添加的所有文本字段数据并将它们显示在下拉列表中。

我必须在文本字段的底部创建一个表格视图。当键盘出现时,我还使用IQKeyboardManager 来维护文本字段。

因此,当键盘出现时,表格视图在键盘背面重叠。如何解决这个问题?

我也附上截图:

【问题讨论】:

作为github.com/hackiftekhar/IQKeyboardManager/issues/177你可以隐藏键盘工具栏 但我没有隐藏工具栏。 我认为您想将文本字段向上移动,对吗?然后使用其他方式来保持键盘避免 是的,可以使用其他方式来避免使用键盘 检查我的答案,一定有帮助 【参考方案1】:

当我进行一些搜索时,我发现了IQKeyboardmanager 类的keyboardDistanceFromTextField 属性。您可以使用以下代码为特定的 textField 对象设置键盘距离:

YourDropDowntextFiled.keyboardDistanceFromTextField = 250;

因此,为您的文本文件使用这行代码,您可以轻松地显示可见的下拉列表。

我已签入演示,如下所示。一个我没有添加keyboardDistanceFromTextField,所以它只出现在键盘之后,其他我应用了propery,所以它会显示与键盘的距离很大。

【讨论】:

【参考方案2】:

看这个。您可以使用 RxSwift 进行紧凑编码

var autoCompleteTableView: UITableView = UITableView()
let containerView: UIView = UIView()
var placesArray = Observable.just([String]())

func createAutocompleteContainer() 

        let screenSize: CGRect = UIScreen.mainScreen().bounds
        let width : CGFloat = screenSize.width-138
        let height : CGFloat = 200
        containerView.frame = CGRect(x: 130, y: 62, width: width, height: height)
        autoCompleteTableView.frame = CGRect(x: 0, y: 0, width: containerView.frame.size.width, height: containerView.frame.size.height)
        containerView.backgroundColor = UIColor.whiteColor()
        placesArray
            .bindTo(autoCompleteTableView.rx_itemsWithCellIdentifier("cell", cellType: UITableViewCell.self))  (row, element, cell) in
                cell.textLabel?.text = "\(element)"
                cell.textLabel?.textColor = UIColor(hex: "#b2b2b2")
                cell.textLabel?.font = UIFont.systemFontOfSize(13)
            
            .addDisposableTo(disposeBag)


        autoCompleteTableView
            .rx_modelSelected(String)
            .subscribeNext  value in
                self.textField = value
                self.containerView.removeFromSuperview()
            
            .addDisposableTo(disposeBag)

        self.containerView.addSubview(autoCompleteTableView)
        self.view.addSubview(containerView)

    

【讨论】:

var placesArray = Observable.just([String]()) 什么是 Observable Observable var for RxSwift Binding placesArray.bindTo ... 或者您可以编写 var placesArray = Variable([]) 并像这样绑定 placesArray.asObservable().bindTo ...

以上是关于如何在下拉列表中添加文本字段自动建议?的主要内容,如果未能解决你的问题,请参考以下文章

使用下拉列表在 Java 中创建一个自动完成文本框

从自动完成下拉列表中未选择任何选项时如何清除 mat- 自动完成

如何在下拉列表更改时更新两个文本字段

如何在 Kendo 下拉列表中添加默认文本?

当并行用户输入文本字段值更改下拉值时,应自动更改

如何使用下拉列表的不同选项自动填充编辑字段?