我正在尝试创建 UIView 的自定义子类,如下所示:
我创建了一个带有 UIView 的 .xib,其中包含 Picker 对象和 Toolbar 对象,连接了 Outlets 和操作。
CustomPickerView.h
#import <UIKit/UIKit.h>
@interface CustomPickerView : UIView
@property (strong, nonatomic) IBOutlet UIDatePicker* datePicker;
@property (strong, nonatomic) IBOutlet UIBarButtonItem* doneButton;
-(IBAction) buttonDonePush:(id)sender;
@end
CustomPickerView.m
#import "CustomPickerView.h"
@implementation CustomPickerView
-(id) init
{
self=[[[NSBundle mainBundle] loadNibNamed:@"CustomPickerView" owner:self options:nil] objectAtIndex:0];
return self;
}
-(void) buttonDonePush:(id)sender
{
[[NSNotificationCenter defaultCenter] postNotificationName:@"CustomPickerViewDoneButtonPush" object:nil userInfo:[NSDictionary dictionaryWithObject:self.datePicker.date forKey:@"date"]];
}
@end
最后,在我的 ViewController 中,我在 viewDidLoad 方法中实例化对象。
- (void)viewDidLoad
{
[super viewDidLoad];
self.customPickerView=[[CustomPickerView alloc] init];
self.customPickerView.datePicker.datePickerMode=UIDatePickerModeTime;
self.dateField.inputView=self.customPickerView;
}
当用户点击 self.dateField 时,我的 CustomPickerView 会很好地弹出来代替标准键盘。
问题是当用户从我的 CustomPickerView 类中点击 Done 按钮时, buttonDonePush 操作不会触发。