2012-03-27 59 views
4

http://f.cl.ly/items/350X3c0h0A0k3s3f1R1h/Screen%20Shot%202012-03-27%20at%202.53.41%20PM.png創建QuickTime X的修剪UI的自定義NSSlider基於關

我工作的一個應用程序,將允許用戶在一段音頻對的OS X.大多數選擇的時間範圍搜索我已經完成了從QuickTime X獲得上述修剪界面的界面,具有unfortunately turned up many iOS related APIs

我的第一個直覺是,這是一個大量定製NSSlider。在嘗試創建這個方向時,我應該採取一個大方向嗎?是NSSlider最佳路線?任何指針,提示或代碼將不勝感激。

編輯:關於這可能是一個自定義控件有一個很好的評論。任何指導都將不勝感激!

+2

+1爲您的音樂品味。 – yuji 2012-03-27 21:57:59

+1

看起來不像我的滑塊。我懷疑這是一個自定義控件。 – 2012-03-27 22:23:34

回答

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:消息來處理範圍選擇。