页面将加载选择器视图数据,并且已设置UITextView
inputView。但是,在页面加载时,当我将pickerView的selectedRow
设置为数据库中的值时,我期望下面的委托将被提高。
pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
提到了一种解决方法,该方法说要在第一行添加一个虚拟行,但是,如果这不是一种选择,并且只有一行,那么还有其他方法可以实现吗?
答案 0 :(得分:1)
来自docs(重点是我):
用户 在组件中选择一行时,由选择器视图调用。
这意味着如果您使用 code 选择行,则该方法将不会被调用,这大概就是您要在此处执行的操作(“我将pickerView的selectedRow设置为该值从数据库中”)。
如果您想打给didSelectRow
这么好,那就打吧!
pickerView(pickerView, didSelectRow: yourRow, inComponent: yourComponent)
或者,如果您不希望自己调用委托方法,因为它们不“应该”被其他类调用,则可以将委托方法中的代码提取到您自己的方法中,然后进行调用。