创建自定义控件。这是我为自定义控件所做的:
首先是界面:
@interface AS_CustomControl : NSControl <NSCoding>
{
}
@end
然后实现:
@implementation AS_CustomControl
-(id)initWithFrame:(NSRect)rect
{
if (self = [super initWithFrame:rect])
{
[self initCustomControl];
}
return self;
}
-(id)initWithCoder:(NSCoder*)coder
{
if (self = [super initWithCoder:coder])
{
[self initCustomControl];
}
return self;
}
-(void)initCustomControl
{
// put any custom initialization here
// such as default variable state
}
-(void)dealloc
{
[super dealloc];
}
-(void)encodeWithCoder:(NSCoder*)coder
{
[super encodeWithCoder:coder];
}
+(Class)cellClass
{
return [NSActionCell class];
}
@end
cellClass 方法可确保您的自定义控件在用户与其交互时触发操作消息。
那么它应该只是在 drawRect: 中绘制波形并覆盖 mouseDown: mouseDragged: 和 mouseUp: 消息来处理范围选择的情况。