我會使用UILabel來允許用戶使用UIDatePicker選擇日期。UILabel不顯示inputView
要做到這一點,我創建了一個子類的UILabel覆蓋inputView和inputAccessoryView的性能,使其可寫;我還實現了 - (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
嘗試在init方法中添加self.userInteractionEnabled = YES。 – jsd
爲什麼不使用UITextField呢? – rdelmar
@jsd我試過了,但它不起作用。 – massyc