2015-11-14 27 views
0

我已经搜索了一段时间,但找不到任何相同的东西。UIToolbar在自定义UITableViewCell没有响应与UIPickerView

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

但是取消和完成按钮从未被解雇。

从我已阅读的其他项目,他们谈论UIFirstResponder等等,但他们都与使uipickerview uitextfield的inputaccessoryview有关。但那不是我正在做的事情。

我试过在代码和故事板中做所有事情,每次都有相同的结果。

下面一些示例..

// (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。 单击任何单元格也会正确关闭/移除pickercell。

enter image description here

回答

0

我做了一个UITextView内的选择器,我使用

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

return NO; 

,然后用

-(void)dismissKeyboard { 
[_date resignFirstResponder]; 
} 

其中_DATE是我的UITextField属性驳回键盘

Dismissing UIPickerView with Done button on UIToolBar

这是一个非常好的帖子,我也发现这个话题!我希望它有帮助。

+0

感谢您的评论,但这不是我所追求的。我不使用选取器作为输入访问视图或作为第一响应者。这只是tableviewcell中的一个子视图,我需要它的uitoolbar的Cancel按钮被触发,然后它会隐藏/从视图中删除单元格。 –