当样式为 .compact 时选择后关闭 UIDatePicker
Close UIDatePicker after selection when style is .compact
故事板应用程序使用 Swift。
如何在用户选择日期后关闭日历(当UIDatePicker 样式为.compact 时显示用于日期选择)?目前,用户需要在日历外部点击才能关闭。我希望它在用户选择日期后自动关闭。
我试过退出 UIDatePicker 的第一响应者,在收到日期更改的通知后结束在 table 视图控制器中的编辑,读取另一个响应 () 等等什么都不适合我。
现在,您可以:
presentedViewController?.dismiss(animated: true, completion: nil)
即
override func viewDidLoad() {
super.viewDidLoad()
datePicker.addTarget(self, action: #selector(dateChanged), for: .valueChanged)
}
@objc private func dateChanged() {
presentedViewController?.dismiss(animated: true, completion: nil)
}
但请注意,这可能会在未来的 iOS 版本 中中断,因为这取决于 compact
日期选择器 的实现细节提供一个视图控制器 来显示日历。如果您打印出显示的类型 VC,您将看到 _UIDatePickerIOSCompactViewController
。前导 _
表明这是一个实现细节。
关于 compact
的全部记录是:
A style indicating that the date picker displays as a label that when tapped displays a calendar-style editor.
因此在 iOS 的未来版本中,他们可以改为更改实现以不提供新的视图控制器,这很可能会中断,然后您将不得不找到另一种方法。我现在看不到任何记录在案的方法。
故事板应用程序使用 Swift。
如何在用户选择日期后关闭日历(当UIDatePicker 样式为.compact 时显示用于日期选择)?目前,用户需要在日历外部点击才能关闭。我希望它在用户选择日期后自动关闭。
我试过退出 UIDatePicker 的第一响应者,在收到日期更改的通知后结束在 table 视图控制器中的编辑,读取另一个响应 (
现在,您可以:
presentedViewController?.dismiss(animated: true, completion: nil)
即
override func viewDidLoad() {
super.viewDidLoad()
datePicker.addTarget(self, action: #selector(dateChanged), for: .valueChanged)
}
@objc private func dateChanged() {
presentedViewController?.dismiss(animated: true, completion: nil)
}
但请注意,这可能会在未来的 iOS 版本 中中断,因为这取决于 compact
日期选择器 的实现细节提供一个视图控制器 来显示日历。如果您打印出显示的类型 VC,您将看到 _UIDatePickerIOSCompactViewController
。前导 _
表明这是一个实现细节。
关于 compact
的全部记录是:
A style indicating that the date picker displays as a label that when tapped displays a calendar-style editor.
因此在 iOS 的未来版本中,他们可以改为更改实现以不提供新的视图控制器,这很可能会中断,然后您将不得不找到另一种方法。我现在看不到任何记录在案的方法。