放置在 pickerview 中的工具栏上的 UIBarButtonItem 操作不起作用

Action for UIBarButtonItem on toolbar which is placed in pickerview not working

我有一个在界面生成器中创建的 UIPickerview。通过代码,我放置了一个工具栏作为其子视图,并放置了一个完成按钮作为工具栏按钮项。我想在单击完成按钮时执行一个操作(隐藏 pickerview 和一些额外的东西)。但由于某种原因,完成按钮的操作不起作用。下面是在 viewDidLoad 中创建工具栏和栏按钮项的代码。

 UIToolbar *toolBar= [[UIToolbar alloc] initWithFrame:CGRectMake(0,0,320,44)];
toolBar.barTintColor =  [UIColor colorWithRed:70/250.0f green:70/250.0f blue:70/250.0f alpha:1.0];


UIBarButtonItem *barButtonDone = [[UIBarButtonItem alloc] initWithTitle:@"Done"
                                                                 style:UIBarButtonItemStyleDone target:self action:@selector(doneButtonTapped:)];


UIBarButtonItem *flexible = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];

toolBar.items = @[flexible, barButtonDone, flexible];
barButtonDone.tintColor=[UIColor colorWithRed:227/255.0f green:178/255.0f blue:49/255.0f alpha:1.0];
[picker addSubview:toolBar];
[picker bringSubviewToFront:toolBar];

这里是 doneButtonTapped 方法:

-(void)doneButtonTapped:(UIBarButtonItem *)sender{

  NSLog(@"Done button tapped");
  picker.hidden = true;
  [self.view bringSubviewToFront:txtCity];
  [self.view bringSubviewToFront:advancedSearchLine];
  [self.view bringSubviewToFront:txtCityLine];
}

我检查了布局调试器,而 运行 应用程序和完成按钮确实位于视图的前面,所以它前面没有任何东西可以阻止它工作。我做错了什么?

您不能将工具栏添加为选取器的子视图 view.create UIView 中的容器将工具栏和选取器添加为子视图。

UIView *inputView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, screenWidth, toolBar.frame.size.height + picker.frame.size.height)];
inputView.backgroundColor = [UIColor clearColor];
[inputView addSubview:picker];
[inputView addSubview:toolBar];