【问题标题】:Hiding NSSlider's tick marks隐藏 NSLider 的刻度线
【发布时间】:2011-04-22 14:05:17
【问题描述】:

有没有办法隐藏NSSlider的刻度线?

【问题讨论】:

  • 您想在 Interface Builder 中还是通过代码来执行此操作?
  • 您好,感谢您的回复。没关系。

标签: objective-c cocoa interface-builder appkit nsslider


【解决方案1】:

如果您想保留刻度标记停止行为但隐藏它们,您可以覆盖 NSSliderCell's -(NSRect)rectOfTickMarkAtIndex:(NSInteger)index 并提供一个尺寸为 0 的矩形。

【讨论】:

  • 为这个最正确的方式加油! -(NSRect)rectOfTickMarkAtIndex:(NSInteger)index { return NSZeroRect; }
【解决方案2】:

您可以使用-[NSSlider setNumberOfTickMarks:] 方法将刻度线的数量设置为零。这将隐藏它们。

在 Interface Builder 中,您可以在检查器面板中将其设置为零。

【讨论】:

  • 是的,但它不会停留在整数值上。我正在使用刻度线,所以用户只能停在 5 而不是 5.5。但是如果我删除刻度线,那么滑块可以在任何地方停止。感谢您的意见。
  • @user:只需设置一个仅输出整数值的NSNumberFormatter。 :)
【解决方案3】:

您可以覆盖 [NSSliderCell drawTickMarks] 并且在您的实现中不做任何事情。

确保将您的子类设置为 NSSlider 的单元格。

【讨论】:

  • 这曾经可以工作,但在 10.14 中停止为我们工作。覆盖 rectOfTickMarkAtIndex 仍然有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多