Ios Swift-工具栏完成按钮未出现在UIPickerView子视图中

Ios Swift-工具栏完成按钮未出现在UIPickerView子视图中,ios,swift,uikit,uipickerview,uitoolbar,Ios,Swift,Uikit,Uipickerview,Uitoolbar,我是swift的初学者,正在尝试学习UIPickerView,它已经完成了从picker视图选择后关闭的按钮。我有以下代码将工具栏和“完成”按钮作为子视图中的工具栏添加到选择器中。它显示为一个空白的黑色工具栏(附屏幕截图) 选择器是控制器中UIPickerView的出口。我做错了什么?我提到了其他问题,但它们似乎不能解决我的问题。有什么建议吗?您在这一行是错的: picker.addSubview(toolBar) Picker不应该有任何子视图-它本身是一个综合视图,并且没有任何区域可以容

我是swift的初学者,正在尝试学习UIPickerView,它已经完成了从picker视图选择后关闭的按钮。我有以下代码将工具栏和“完成”按钮作为子视图中的工具栏添加到选择器中。它显示为一个空白的黑色工具栏(附屏幕截图)


选择器是控制器中UIPickerView的出口。我做错了什么?我提到了其他问题,但它们似乎不能解决我的问题。有什么建议吗?

您在这一行是错的:

picker.addSubview(toolBar)
Picker不应该有任何子视图-它本身是一个综合视图,并且没有任何区域可以容纳任何其他内容

相反,您需要在同一个视图中添加选择器和工具栏,并将它们相邻对齐

let toolBar = UIToolbar()
...configure your toolbar here...
guard let superview = picker.superview else { return }
superview.addSubview(toolBar)
toolBar.translateAutoresizingMaskIntoConstraints = false
NSLayoutConstraints.activate([
    toolBar.topAnchor.constraint(equalTo: superview.topAnchor),
    toolBar.leftAnchor.constraint(equalTo: superview.leftAnchor),
    toolBar.rightAnchor.constraint(equalTo: superview.rightAnchor),
    toolBar.bottomAnchor.constraint(equalTo: picker.topAnchor)
])

您不应将工具栏添加为选择器的
子视图

您应该将工具栏设置为文本字段的
inputAccessoryView

当我搜索这个问题时,我发现实现所需功能的常用方法(也是最简单的方法)是使用虚拟文本字段

这意味着在按钮的确切帧处创建一个文本字段并隐藏它,当用户触摸按钮时,使文本字段成为第一响应者

@IBAction func pickerButtonClicked(_ sender: Any) {
    self.pickerViewTextField.becomeFirstResponder
}

你想在用户触摸
textfield
时打开选择器吗?@ArashEtemad不,我已经计算出了那个部分。现在,我想添加“完成”按钮,以便在选择后关闭选取器。只需创建一个容器视图,其中包含选取器和工具栏。我认为您应该像这样使用dateText.inputAccessoryView=NumberToolBar检查此URL。。如果是这样,它如何在顶部添加黑条(@pritesh这大概是两个相邻的不同视图,我一按按钮就显示出来,上面写着它是只读属性。请帮我写代码。
@IBAction func pickerButtonClicked(_ sender: Any) {
    self.pickerViewTextField.becomeFirstResponder
}