Скрытие отметок NSSlider

#objective-c #cocoa #interface-builder #appkit #nsslider

#objective-c #cocoa #конструктор интерфейса #appkit #nsslider

Вопрос:

Есть ли способ скрыть отметки NSSlider ?

Комментарии:

1. Вы хотите сделать это в Interface Builder или с помощью кода?

2. Привет, спасибо за ответ. Это не имеет значения.

Ответ №1:

Если вы хотите сохранить поведение остановки метки, но скрыть их, вы можете переопределить NSSliderCell's -(NSRect)rectOfTickMarkAtIndex:(NSInteger)index и предоставить прямоугольник с 0 размерами.

Комментарии:

1. присоединяйтесь к этому наиболее правильному способу! -(NSRect)rectOfTickMarkAtIndex:(NSInteger)индекс { возвращает NSZeroRect; }

Ответ №2:

Вы можете использовать -[NSSlider setNumberOfTickMarks:] метод, чтобы установить количество отметок равным нулю. Это скроет их.

В Interface Builder вы можете просто установить это значение равным нулю на панели инспектора.

Комментарии:

1. Да, но тогда это не остановится на целых значениях. Я использую метки, чтобы пользователь мог остановиться, скажем, только на 5, а не на 5.5. Но если я удалю метки, то ползунок может остановиться где угодно. Однако спасибо за информацию.

2. @user: Просто настройте NSNumberFormatter , который выводит только целочисленные значения. 🙂

Ответ №3:

Вы можете переопределить [NSSliderCell drawTickMarks] и ничего не делать в своей реализации.

Убедитесь, что в качестве ячейки NSSlider указан ваш подкласс.

Комментарии:

1. Раньше это работало, но перестало работать у нас в 10.14. Переопределение rectOfTickMarkAtIndex все еще работает.