1

这是关于 OSX - iOS 与我无关。我在 InterfaceBuilder 中创建了一个 NSButton 并将其边框设置为“Radio”。默认情况下不选中该按钮。在我的应用程序中,我当然可以检查它,但是当再次单击它时,它不会被取消选中 - 因为单选按钮通常不是。

现在我的问题是是否有可能获得带有“Radio”边框的 NSButton,这似乎将类型固定为“Radio”,也可以像它的类型是“Switch”一样行事(“Switch”类型不能是当挡板为“收音机”时选择,所以我认为这必须通过代码完成)。

问题不在于这样做是否有意义:-) 而是是否可以做到以及通过什么方式。

编辑:选择斜面“无线电”然后将“推送”到“推送”或“在”接口构建器“中的”开关“时,Bezel切换到按钮的”斜角“,但无线电按钮外观保持不可立一体,只要一个人这样做以该顺序更改,之后不会触及任何其他内容。该按钮也可用作开/关。然而,我尝试获得的原始“收音机”边框有一个不同之处。我在 NSBox 中使用这个按钮,当设置为“Push On Push Off”时,我无法让它不绘制窗口的背景颜色。这是问题的屏幕截图:

下部元素是斜角“Radio”/类型“Radio”,上部元素切换为类型“Push On Push Off”,如上详述。我可以以某种方式使那个窗口色的正方形消失还是有不同的方法?

编辑 2:我尝试为相应的 NSButtonCell 创建一个 IBOutlet,然后使用:

[myButtonCell setBackgroundColor:[NSColor clearColor]];

然而,alpha coponent 被忽略了,我最终得到了黑色背景。仍然不知道如何解决这个问题......

解决方案:奇怪的是,我偶然发现,当将类型设置为“瞬时更改”时,单击将打开按钮,然后单击将其关闭,上面详述的背景问题就消失了。没问题。

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSButtonCell_Class/Reference/Reference.html#//apple_ref/c/econst/NSPushOnPushOffButton上的文档是什么意思说明“ Momentary Change”:“按住按钮时,会显示替代图像和替代标题。不按下按钮时会显示正常图像和标题。” 我不知道 - 按住按钮时没有任何反应...

编辑 3:上面的解决方案在 MacOS 10.12 (Sierra) 上崩溃了,因为在 10.11 之前一切正常,结果按钮将永远不会显示为“on”

4

2 回答 2

1

If you want to have NSSwitchButton behavior for a button that looks like an NSRadioButton, then you can setImage: and setAlternateImage: of the NSSwitchButton to the image and alternateImage of a dummy NSRadioButton

于 2013-08-01T20:52:27.937 回答
0

查看此Apple 文档的“粘滞按钮”部分。

于 2012-08-22T13:58:49.910 回答