UILabel を使用して、ユーザーが UIDatePicker で日付を選択できるようにします。
これを行うために、inputView および inputAccessoryView プロパティを上書きして書き込み可能にする UILabel サブクラスを作成しました。-(BOOL) canBecomeFirstResponder メソッドと -(BOOL) isUserInteractionEnabled メソッドも実装し、両方で YES を返します。次に、UIDatePIcker のインスタンスを inputView プロパティに割り当てました。
この時点で、ラベルをタップすると UIDatePicker が表示されるはずですが、何も起こりません。
何か助けはありますか?
これはコードです:
YPInteractiveUILabel.h
@interface YPInteractiveUILabel : UILabel
@property (readwrite) UIView *inputView;
@property (readwrite) UIView *inputAccessoryView;
- (BOOL) canBecomeFirstResponder;
- (BOOL) isUserInteractionEnabled;
@end
YPInteractiveUILabel.h
#import "YPInteractiveUILabel.h"
@implementation YPInteractiveUILabel
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self)
{
UIDatePicker *datePicker = [[UIDatePicker alloc] init];
[self setInputView:datePicker];
}
return self;
}
- (BOOL)isUserInteractionEnabled
{
return YES;
}
- (BOOL)canBecomeFirstResponder
{
return YES;
}
@end