2015-07-12 41 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

相关问题