2010-12-09 25 views
1

我正在嘗試創建自定義按鈕外觀。自定義NSButton和NSButtonCell

從我收集到的信息中,NSButtonCell做的是繪圖,所以我應該改寫它。

但問題是,我的CustomButton類有其他東西,如NSImage,mIsMouseOver等。目前該繪圖正在CustomButton類中完成,但我想將它移動到單元格。

問題是,有無論如何我可以從customButtonCell類訪問customButton類中的圖像,以便我可以使用[image drawInRect:...]

問候, 漢

回答

1

你的單元格的drawWithFrame:(NSRect)frame inView:(NSView *)controlView方法包含一個對NSView的引用,從中可以訪問視圖的屬性(如圖像)。

+0

我覺得這聽起來像是一個計劃,我會給你一個鏡頭。這一切都工作正常,直到我層支持我的看法和所有我的自定義按鈕不起作用,因此我必須重寫所有繪製在單元格而不是按鈕:( – han 2010-12-10 01:20:49

1

通常的方法是將數據存儲在的NSCell子類。基本單元類甚至具有 - (id)圖像屬性,因此,在查詢圖像時,按鈕類應該調用[[self cell] image]。實際上,由於你是NSButton的子類,它包含了你所需要的全部,只是覆蓋單元格的繪圖方法。如果你需要一個額外的屬性 - 在單元格中定義它,請包裹在控件中。

相關問題