【问题标题】: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你可以隐藏键盘工具栏
  • 但我没有隐藏工具栏。
  • 我认为您想将文本字段向上移动,对吗?然后使用其他方式来保持键盘避免
  • 是的,可以使用其他方式来避免使用键盘
  • 检查我的答案,一定有帮助

标签: ios swift uitableview uitextfield iqkeyboardmanager


【解决方案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 ...
    猜你喜欢
    • 1970-01-01
    • 2016-12-15
    • 2012-09-22
    • 2015-08-14
    • 2016-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多