http://f.cl.ly/items/350X3c0h0A0k3s3f1R1h/Screen%20Shot%202012-03-27%20at%202.53.41%20PM.png
我正在开发一个应用程序,该应用程序允许用户在 OS X 的一段音频中选择一个时间范围。我所做的大部分搜索都是围绕从 QuickTime 获取类似上述修剪界面的 UI 进行的X 有 unfortunately turned up many iOS related APIs .
我的第一直觉是这是一个高度自定义的 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: 消息来处理范围选择的情况。
关于objective-c - 基于 QuickTIme X 的 Trim UI 创建自定义 NSSlider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9898297/