#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 все еще работает.