4

http://f.cl.ly/items/350X3c0h0A0k3s3f1R1h/Screen%20Shot%202012-03-27%20at%202.53.41%20PM.png

我正在开发一个应用程序,该应用程序允许用户为 OS X 选择一段音频中的时间范围。不幸的是,我所做的大部分搜索都是围绕从 QuickTime X 获取类似上述修剪界面的 UI出现了许多与 iOS 相关的 API

我的第一直觉是,这是一个高度定制的NSSlider. 尝试创建此内容时,我应该遵循一个总体方向吗?是NSSlider最好的路线吗?任何指针、提示或代码将不胜感激。

编辑:有一个很好的评论这可能是一个自定义控件。对此的任何指导也将不胜感激!

4

1 回答 1

1

创建自定义控件。这是我为自定义控件所做的:

首先是界面:

@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: 消息来处理范围选择的情况。

于 2012-04-04T02:33:26.223 回答