Swift 4.1:SelectRow for UIPickerView 不会引发委托 didSelectRow



页面加载选取器视图数据,并在设置输入视图UITextView。但是,当页面加载时,当我将选取器视图的selectedRow设置为数据库中的值时,我希望会引发以下委托。

pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)

提到了一种解决方法,即添加虚拟行作为第一行,但是如果这不是一个选项并且只有一行,那么还有其他方法可以实现它吗?

来自文档(强调我的):

当用户 选择组件中的行时,由选取器视图调用。

这意味着如果您使用代码选择一行,则不会调用该方法,这可能是您在此处尝试执行的操作("我将选取器视图的 selectedRow 设置为数据库中的值")。

如果你想这么狠狠地打电话didSelectRow,就打电话吧!

pickerView(pickerView, didSelectRow: yourRow, inComponent: yourComponent)
或者,如果您不喜欢自己调用委托方法,

因为它们"应该"由其他类调用,则可以将委托方法中的代码提取到您自己的方法中,然后调用它。

最新更新