Как заставить часть NSSlider остановиться на отметках? - PullRequest
2 голосов
/ 03 мая 2009

Я хотел бы иметь NSSlider, который не привязывается к отметкам, кроме последних двух. Такое же поведение ползунка в Системных настройках -> Экономия энергии -> Спящий режим. Есть идеи как это сделать?

Ответы [ 2 ]

2 голосов
/ 03 мая 2009

Я не знаю простой способ, но если он доходит до него, вы можете создать свой собственный подкласс NSSliderCell и переопределить некоторые или все эти три метода:

- (BOOL)startTrackingAt:(NSPoint)startPoint inView:(NSView *)controlView;
- (BOOL)continueTracking:(NSPoint)lastPoint at:(NSPoint)currentPoint inView:(NSView *)controlView;
- (void)stopTracking:(NSPoint)lastPoint at:(NSPoint)stopPoint inView:(NSView *)controlView mouseIsUp:(BOOL)flag;
0 голосов
/ 06 мая 2009

Я думаю, что лучшим способом было бы создать подкласс NSSliderCell и переопределить некоторые или все тиковые методы.

- (double)closestTickMarkValueToValue:(double)aValue

Я предполагаю, что этот метод позволяет вам выбрать, на каких точках остановиться, но если это не сработает ....

Вы можете сделать NSSlider непрерывным. Ваша цель получит действие, которое вы установили, когда пользователь перемещает ползунок. Как только он становится выше / ниже порога, вы можете изменить, останавливается ли он только на отметках или нет. Это может или не может быть то, что вы ищете (так как это не будет хорошо играть с привязками и т. Д.), Но это возможный взлом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...