ios - UIToolbar 在带有 UIPickerView 的自定义 UITableViewCell 中没有响应

标签 ios swift uitableview uipickerview uitoolbar

我已经搜索了一段时间,但找不到任何完全相同的内容。

我有一个 UITableView,当选择某一行时,我在下面插入另一行。 插入的行是一个自定义的 tableviewcell,其中包含 UIPickerView。 pickerview 工作正常,当选择一个项目时,它可以触发通知,将所选信息发送回 tableviewcontroller,然后删除“pickerviewcell”。那里一切都好。 但如果用户想要在 uipickerview 上来回滚动,这并不理想。因此,我在 uipickerview 中添加了一个 uitoolbar,并带有“取消和完成”按钮。

但是“取消”和“完成”按钮永远不会被触发。

从我读过的其他项目中,他们谈论了 UIFirstResponder 等,但它们都与使 uipickerview 成为 uitextfield 的 inputaccessoryview 相关。但这不是我正在做的事情。

我尝试过用代码和 Storyboard来完成这一切,每次都得到相同的结果。

下面是一些例子..

// (in my CustomTableViewCell's AwakeFromNib function)
    let screenSize: CGRect = UIScreen.mainScreen().bounds
    pickerView = UIPickerView(frame: CGRectMake(0,0, screenSize.width, 162))
    pickerView.delegate = self
    pickerView.dataSource = self

    pickerToolbar.barStyle = UIBarStyle.Default
    pickerToolbar.translucent = true
    pickerToolbar.tintColor = UIColor.orangeColor()
    pickerToolbar.sizeToFit()

    pickerToolbar.userInteractionEnabled = true
    pickerView.addSubview(pickerToolbar)
    self.contentView.insertSubview(pickerView, atIndex: 3)

    // both these logs show correct output
    NSLog("picker subviews: %@", pickerView.subviews.description)
    NSLog("toolbar subviews: %@", pickerToolbar.subviews.description)

截图示例: 通过单击“收件人”单元格,将插入具有选择器的新单元格。选择器本身工作得很好。但取消按钮不会被触发。它有一个从 Storyboard 链接到的 IBAction。 单击任何单元格也会正确关闭/删除选择器单元格。

enter image description here

最佳答案

我在 UITextview 中制作了一个选择器,并使用

 -(BOOL) textFieldShouldReturn:(UITextField *)textField{
 [textField resignFirstResponder];

return NO;

然后使用

关闭键盘
-(void)dismissKeyboard {
[_date resignFirstResponder];
 }

其中 _date 是我的 UITextfield 属性

Dismissing UIPickerView with Done button on UIToolBar

这也是我发现的关于这个主题的非常好的帖子!我希望它有所帮助。

关于ios - UIToolbar 在带有 UIPickerView 的自定义 UITableViewCell 中没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33703694/

相关文章:

ios - 从单元格行获取 UITableViewCell 属性

swift - 如何快速更改表格 View 中文本的颜色?

iphone - iPhone 中的 "Open With"某些应用程序如何工作?

ios - iPhone Xs - 使用 AVCaptureVideoPreviewLayer 时,为什么 UIView 的顶部边框和安全区域的顶部边框之间有巨大的填充?

swift - 将 NSMenuItem 的状态设置为 On

swift - 进度条不异步变化

ios - dequeueReusableCellWithIdentifier 然后不使用单元格?

javascript - iOS 的 native 应用程序和网页的 javascript 之间的通信

ios - 使用 Storyboard xcode 6 在 vi​​ewController 中调整内容

ios - Swift 3 设备运动重力