ios - inputAccessoryView 无法正常工作或格式化

标签 ios uitextfield uitoolbar uidatepicker inputaccessoryview

我正在为 UITextFieldUIToolbar 设置一个 datepicker 来代替键盘。我希望能够关闭 accessoryView,但它没有正常运行。虽然我按下了 Done 按钮,但没有调用操作方法,工具栏格式也不是我想要的颜色。

[UIColor defaultAppColor] 应该是红色阴影,但它没有出现在任何地方。

我做错了什么?

UIDatePicker *datePicker = [[UIDatePicker alloc] initWithFrame:CGRectZero];
datePicker.datePickerMode = UIDatePickerModeDate;
datePicker.backgroundColor = [UIColor universalGreyColor];

UIToolbar *dobToolbar = [[UIToolbar alloc] init];

UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(dateSelected:)];
doneButton.tintColor = [UIColor universalActionColor];
UIBarButtonItem *flexibleSeparator = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
dobToolbar.items = @[flexibleSeparator, doneButton];
dobToolbar.barTintColor = [UIColor colorWithWhite:33.0/255.0 alpha:1];
dobToolbar.backgroundColor = [UIColor defaultAppColor];

[dobToolbar setShadowImage:[UIImage new] forToolbarPosition:UIToolbarPositionAny];

//dobToolbar.barStyle = UIBarStyleDefault;

self.dob.inputAccessoryView = dobToolbar;

self.dob.inputView = datePicker;

最佳答案

我相信此时您的工具栏可能没有框架。尝试添加:

[dobToolbar sizeToFit];

这应该会让您的栏按钮开始工作。

如果您希望工具栏为 defaultAppColor,请尝试将其设置为 barTintColor 属性,而不是 backgroundColor

关于ios - inputAccessoryView 无法正常工作或格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31435744/

相关文章:

iphone - 顶部和底部具有透明渐变的 UITableView

iphone - 通过 USB 从 Linux 控制 iDevice

ios - 快速查找 iPod 库中歌曲的位置?

objective-c - 为什么每次按下按钮时 UITextField 不刷新?

ios - 如何让 UITextField 的 textContentType 属性执行任何操作?

ios - 为什么 range.length 值在 shouldChangeCharactersInRange 委托(delegate)方法中因退格而改变?

iphone - 我可以向 UIToolbar 添加彩色按钮吗?

ios - UIToolbar 与 UIBarButtonItem LayoutConstraint 问题

ios - 如何移动逻辑以显示 UITableViewRowAction 从委托(delegate)方法到 View 模型(MVVM 架构)

ios - Swift - 带有 UIPickerView 完成按钮的 UIToolbar 在横向上消失