inputAccessoryView 无法正常工作或格式化

inputAccessoryView not working or formatting properly

我正在设置 datepicker 来代替 UITextFieldUIToolbar 的键盘。我希望能够关闭 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