UIPickerView 作为 UITextView 的输入视图 swift
UIPickerView as inputView for UITextView swift
我使用 UIPickerView 作为 UITextView 的输入视图。
selectRow:
函数不能 select 正确地替代时间
这是代码
func textViewDidBeginEditing(_ textView: UITextView) {
let inputView = UIView(frame: CGRect(x: 0,y: 0, width: self.view.frame.width, height: 240))
let codePicker = UIPickerView(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: 240))
codePicker.tag = 2
if codePicker.dataSource == nil {
codePicker.dataSource = self
}
if codePicker.delegate == nil {
codePicker.delegate = self
}
codePicker.showsSelectionIndicator = true
print("selectedBankRow: \(selectedRow)")
codePicker.selectRow(selectedRow, inComponent: 0, animated: true)
inputView.addSubview(codePicker)
textView.inputView = inputView
return
}
打印语句打印正确的行,但是 selectRow:
函数 select 是 selected 的前一个值,可能是什么错误?甚至状态栏每次交替变黑也仅针对此 UITextView 交互。
不要每次都创建 UIPickerView
创建全局对象
var codePicker = UIPickerView()
并在 viewDidLoad 方法中
添加以下代码
let inputView = UIView(frame: CGRect(x: 0,y: 0, width: self.view.frame.width, height: 240))
codePicker = UIPickerView(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: 240))
codePicker.tag = 2
codePicker.dataSource = self
codePicker.delegate = self
codePicker.showsSelectionIndicator = true
print("selectedBankRow: \(selectedRow)")
codePicker.selectRow(selectedRow, inComponent: 0, animated: true)
inputView.addSubview(codePicker)
textView.inputView = inputView
当你用
解决状态栏问题时
IQKeyboardManager.sharedManager().canAdjustAdditionalSafeAreaInsets = true
希望对您有所帮助
我使用 UIPickerView 作为 UITextView 的输入视图。
selectRow:
函数不能 select 正确地替代时间
这是代码
func textViewDidBeginEditing(_ textView: UITextView) {
let inputView = UIView(frame: CGRect(x: 0,y: 0, width: self.view.frame.width, height: 240))
let codePicker = UIPickerView(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: 240))
codePicker.tag = 2
if codePicker.dataSource == nil {
codePicker.dataSource = self
}
if codePicker.delegate == nil {
codePicker.delegate = self
}
codePicker.showsSelectionIndicator = true
print("selectedBankRow: \(selectedRow)")
codePicker.selectRow(selectedRow, inComponent: 0, animated: true)
inputView.addSubview(codePicker)
textView.inputView = inputView
return
}
打印语句打印正确的行,但是 selectRow:
函数 select 是 selected 的前一个值,可能是什么错误?甚至状态栏每次交替变黑也仅针对此 UITextView 交互。
不要每次都创建 UIPickerView
创建全局对象
var codePicker = UIPickerView()
并在 viewDidLoad 方法中
添加以下代码
let inputView = UIView(frame: CGRect(x: 0,y: 0, width: self.view.frame.width, height: 240))
codePicker = UIPickerView(frame: CGRect(x: 0, y: 0, width: self.view.bounds.width, height: 240))
codePicker.tag = 2
codePicker.dataSource = self
codePicker.delegate = self
codePicker.showsSelectionIndicator = true
print("selectedBankRow: \(selectedRow)")
codePicker.selectRow(selectedRow, inComponent: 0, animated: true)
inputView.addSubview(codePicker)
textView.inputView = inputView
当你用
解决状态栏问题时IQKeyboardManager.sharedManager().canAdjustAdditionalSafeAreaInsets = true
希望对您有所帮助