Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在NSMenuItem内设置NSSlider的位置/宽度_Objective C_Macos_Cocoa_Nsmenu_Nsslider - Fatal编程技术网

Objective c 在NSMenuItem内设置NSSlider的位置/宽度

Objective c 在NSMenuItem内设置NSSlider的位置/宽度,objective-c,macos,cocoa,nsmenu,nsslider,Objective C,Macos,Cocoa,Nsmenu,Nsslider,我将一个NSMenu附加到一个NSStatusItem,在该NSMenu中,我将一个NSMenuItem属性设置为NSSlider对象。这几乎奏效了(它让我得到了我想要的东西) 结果如下所示: 问题是我希望滑块与上面的菜单项对齐,这样看起来就不会那么糟糕了 我在苹果的文档中找不到任何关于能够设置NSSlider的位置的信息,所以我想我必须自己绘制它 这是正确的假设吗?如果是的话,有哪些课堂参考资料/建议的阅读链接可以达到这个效果?或者,我做错了吗 当我这样做的时候——我不得不在UI build

我将一个
NSMenu
附加到一个
NSStatusItem
,在该
NSMenu
中,我将一个
NSMenuItem
属性设置为
NSSlider
对象。这几乎奏效了(它让我得到了我想要的东西)

结果如下所示:

问题是我希望滑块与上面的菜单项对齐,这样看起来就不会那么糟糕了

我在苹果的文档中找不到任何关于能够设置
NSSlider
的位置的信息,所以我想我必须自己绘制它

这是正确的假设吗?如果是的话,有哪些课堂参考资料/建议的阅读链接可以达到这个效果?或者,我做错了吗

当我这样做的时候——我不得不在UI builder中将滑块拖动到我想要的宽度——有没有任何方法可以通过编程设置滑块的宽度,从而填充菜单中所需的空间


谢谢,很抱歉,这些都是noob问题-我对ObjC编程相当陌生。

首先,创建自己的
NSView
。接下来,将
NSSlider
放在该视图中。如果需要特殊间距,请在“容器”视图中调整滑块。或者,在Interface Builder中旋转。

从NSControl继承的值方法。e、 g.setFloatValue:CGRectDivide()取出一个合适的框架,然后从边缘减去一点,并将其原点.x与其余控件的原点对齐。您可能需要重新考虑您的设计-作为用户,我不喜欢在菜单中摆弄滑块…@Jay-您可能是对的,但我正在构建的应用程序本质上是非常简单的,只是没有太多的选项/首选项。在这种情况下,创建一个全新的窗口或其他东西来允许我的用户控制播放的音量可能会有点过头。当然,这是一个值得关注的问题,我对这个想法并不感到兴奋,但这是我现在拥有的最好的想法