gpt4 book ai didi

ios - UITextView InputView UITableViewController

转载 作者:行者123 更新时间:2023-11-30 13:29:37 26 4
gpt4 key购买 nike

我正在尝试实现一个重写 UITextViews InputView 的 TableView 来为用户提供可搜索的 TableView,然后使用所选值填充 UITextField。

我搜索了相当多的内容,找到的最接近的解决方案是 this但我不确定如何将 UITableViewController 关联到我的 UITextViews InputView?

我可以看到这些函数正在 MultiSelectPicker 中被调用...

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int

override func numberOfSectionsInTableView(tableView: UITableView) -> Int

但我相当确定这些并不能解释为什么我没有看到表格 View 中填充任何内容。

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?

我已经更改了 didSet,所以我知道正在从主线程调用 reloadData,但仍然没有任何结果。

var items = [NSObject](){
didSet{
dispatch_async(dispatch_get_main_queue(),{

self.tableView.reloadData()

});
}
}

这可能与我在主视图 Controller 中设置 inputView 的方式有关,但我对 iOS 和 Swift 相当陌生,所以我可能缺少一些基本的东西。

    @IBOutlet weak var mspEmployee: MultiSelectPicker!

let employeePickerView = MultiSelectPicker()
employeePickerView.items = self.oEmployees
self.mspEmployee = employeePickerView
self.txtEmployee.inputView = self.mspEmployee.view

这真的让我发疯,所以任何帮助将不胜感激!

最佳答案

您需要子类化 UITextField 并将 inputView 设置为 UITableView 的 View 。这是我最近所做的类似事情的一些实现。

class BaseTextField: UITextField{

//Base textfield so that all custom textfields inherit the disabling of certain uitextfield things
required init?(coder aDecoder: NSCoder) {

super.init(coder: aDecoder)

//disabling menu, autocorrection and copy paste functionality
autocorrectionType = UITextAutocorrectionType.No
inputAssistantItem.leadingBarButtonGroups = []
inputAssistantItem.trailingBarButtonGroups = []
}

override func canPerformAction(action: Selector, withSender sender: AnyObject?) -> Bool {
NSOperationQueue.mainQueue().addOperationWithBlock { () -> Void in
UIMenuController.sharedMenuController().setMenuVisible(false, animated: false)
}
return false
}
}


class OptionSelectText: BaseTextField{
let picker:OptionPicker //this is the UITableViewController I Use for selecting values
required init?(coder aDecoder: NSCoder) {
picker = OptionPicker()
picker.view.translatesAutoresizingMaskIntoConstraints = false
super.init(coder: aDecoder)

picker.delegate = self
let toolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: picker.view.frame.width, height: 44))

let doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: #selector(OptionSelectText.pickerViewDoneAction))
let flex = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: self, action: nil)
let clearButton = UIBarButtonItem(title: "Clear", style: UIBarButtonItemStyle.Plain, target:self, action: #selector(OptionSelectText.pickerClearAction))
toolbar.setItems([clearButton, flex, doneButton], animated: false)
toolbar.userInteractionEnabled = true
inputView = picker.view
inputAccessoryView = toolbar
}
}

关于ios - UITextView InputView UITableViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36722185/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com