UIToolBar 上的完成按钮不起作用 - iOS

Posted

技术标签:

【中文标题】UIToolBar 上的完成按钮不起作用 - iOS【英文标题】:Done button on UIToolBar does not operate - iOS 【发布时间】:2014-04-23 07:51:06 【问题描述】:

我正在尝试创建一个带有已完成按钮的栏的选择器。

我尝试如下实现;

viewForDatePicker = [[UIView alloc]initWithFrame:CGRectMake(0, 300, 320, 266)];

[viewForDatePicker setBackgroundColor:[UIColor whiteColor]];

UIToolbar *toolBar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 44)];
toolBar.barStyle = UIBarStyleBlackOpaque;

UIBarButtonItem *btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                                                     target:self action:@selector(doneButtonPressed:)];

UIButton * doneButton =[[UIButton alloc]initWithFrame:CGRectMake(290, 2, 30, 20)];
[doneButton setBackgroundColor:[UIColor redColor]];
[doneButton addTarget:self action:@selector(doneButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
[viewForDatePicker addSubview:doneButton];

[toolBar setItems:[NSArray arrayWithObject:btn]];
[viewForDatePicker addSubview:toolBar];

birthDatePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 44, 320, 266)];
[birthDatePicker setDatePickerMode:UIDatePickerModeDate];
[birthDatePicker setBackgroundColor:[UIColor whiteColor]];

[viewForDatePicker addSubview:birthDatePicker];


[self.view addSubview:viewForDatePicker];

不幸的是,完成按钮无法执行。这段代码有什么问题?

你能帮帮我吗

【问题讨论】:

你能分享 doneButtonPressed 的代码吗?并且还想让您注意到您在“btn”和“doneButton”中使用相同的选择器方法。 按钮顶部的日期选择器?尝试在日期选择器之后添加按钮。 @CW0007007 你的答案是正确的 已添加答案。标记为对其他人正确。 【参考方案1】:

您首先将按钮添加到视图中。 因此,当您添加日期选择器时,它位于按钮上方。这就是按钮不响应触摸的原因。 改为:

birthDatePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 44, 320, 266)];
[birthDatePicker setDatePickerMode:UIDatePickerModeDate];
[birthDatePicker setBackgroundColor:[UIColor whiteColor]];

[viewForDatePicker addSubview:birthDatePicker];

UIButton * doneButton =[[UIButton alloc]initWithFrame:CGRectMake(290, 2, 30, 20)];
[doneButton setBackgroundColor:[UIColor redColor]];
[doneButton addTarget:self action:@selector(doneButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
[viewForDatePicker addSubview:doneButton];

[toolBar setItems:[NSArray arrayWithObject:btn]];
[viewForDatePicker addSubview:toolBar];

【讨论】:

以上是关于UIToolBar 上的完成按钮不起作用 - iOS的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 7 中向 UIToolbar 添加更大的按钮项?

使用 UIToolBar 上的完成按钮关闭 UIPickerView

带有 UIToolbar 的 UIDatePicker

键盘完成关键动作swift iOS不起作用

键盘完成键动作swift iOS不起作用

添加选择器视图(如附件视图)时,工具栏按钮不起作用