2015-07-12 3 views
0

ALL,Создание управления, как ребенок другого элемента управления

Я пытаюсь научиться программированию какао, и я наткнулся на следующее:

Кажется, что каждый ресурс, включая 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?), Вы можете (авто-) компоновать NSSlider & NSTextField в nib (xib) (как subviews). – geowar

+0

@geovar, Что такое nib (xib)? Можете ли вы опубликовать какой-то простой код какао? Тот, который совместим, по крайней мере, с 10.7+. Спасибо. – Igor

Смежные вопросы