繁体   English   中英

基于QuickTIme X的Trim UI创建自定义NSSlider

[英]Creating a Custom NSSlider Based Off of QuickTIme X's Trim UI

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是最好的路线吗? 任何指针,提示或代码将不胜感激。

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

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

首先是界面:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM