2015-07-12 32 views
0

所有的孩子,創建控件作爲另一個控制

我努力學習Cocoa編程和我無意中發現了以下幾點:

似乎每包括SO資源說,爲了使用標籤NSSlider需要創建這些標籤作爲創建實際NSSlider的面板/對話框/主窗口的子項。

因此,它是這樣的:

dialog->NSSlider 
    | 
    |----> label 

然而,這意味着我將不得不管理用手一切。

現在我心目中是使標籤作爲NSSlider的孩子,所以,這將是:

dialog->NSSlider 
      | 
      |------>label 

它是一個好主意,像這樣做?它是否符合Cocoa/Apple指南?或者我完全在這裏?

如果這是一個好主意,我會欣賞一些關於如何使它工作的代碼。

謝謝。

回答

0

NSControl的子類,並有它的初始化器創建&管理NSSlider & NSTextField(作爲子視圖)。覆蓋setTarget & setAction方法調用直通到NSSlider。添加setLabel(或標籤屬性)方法來設置NSTextField的字符串值等。

+0

我對標籤的正確定位更感興趣。當他們是對話的孩子時,一切都很簡單。但是,當他們的滑塊的孩子...有沒有辦法設置一個z順序或以某種方式定位標籤,使他們將可見?你可以發佈一些代碼嗎?謝謝。 – Igor

+0

當你子類化NSControl(MyLabeledSlider?)時,你可以(自動)在nib(xib)(作爲子視圖)中佈置NSSlider&NSTextField。 – geowar

+0

@geovar,什麼是nib(xib)?你可以發佈一些簡單的Cocoa代碼來看看嗎?與至少10.7+兼容的那個。謝謝。 – Igor