gpt4 book ai didi

macos - NSButton渐变样式

转载 作者:行者123 更新时间:2023-12-03 16:13:00 25 4
gpt4 key购买 nike

在 Interface Builder 组件中,我有渐变按钮

Gradient Button

我想以编程方式创建此按钮。但我找不到按钮类型、边框样式和渐变类型的组合来重现它。我的本地目标是创建像这样的加号(添加)和减号(删除)按钮

Add and remove items, gradient button

也许你也知道如何实现减号右边的部分?它看起来像禁用的渐变按钮。

更新(2012-02-01, 14:52)

我将渐变按钮放在空的 xib 上,用文本编辑器打开 xib 并找到我的按钮。这是代码的一部分。

<array class="NSMutableArray" key="NSSubviews">
<object class="NSButton" id="155381693">
<reference key="NSNextResponder" ref="1005"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{20, 303}, {106, 23}}</string>
<reference key="NSSuperview" ref="1005"/>
<reference key="NSWindow"/>
<string key="NSReuseIdentifierKey">_NS:2466</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="976550657">
<int key="NSCellFlags">-2080244224</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Gradient Button</string>
<object class="NSFont" key="NSSupport">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">13</double>
<int key="NSfFlags">1044</int>
</object>
<string key="NSCellIdentifier">_NS:2466</string>
<reference key="NSControlView" ref="155381693"/>
<int key="NSButtonFlags">-2033434369</int>
<int key="NSButtonFlags2">162</int>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">400</int>
<int key="NSPeriodicInterval">75</int>
</object>
</object>
</array>

我将尝试使用此信息重现按钮。

最佳答案

天哪,我瞎了。只需将边框样式设置为 NSSmallSquareBezelStyle 和按钮输入 NSMomentaryPushInButton。

我不需要图像。我不需要使用 CoreGraphics 进行自定义绘制(我为此做了我自己的类)。我不需要解析 xib。我不需要转储运行时结构(我这样做是为了找到使用 xib 创建的渐变按钮的导出中字段的必要值)。我必须尝试 documentation 中边框样式的所有值。但是,如果您阅读文档中 NSSmallSquareBezelStyle 的描述,您就会明白我的困惑:它与 IB 向导中的“渐变”值相差甚远。

enter image description here

正确代码:

NSButton *gradientButton = [[NSButton alloc] initWithFrame:NSMakeRect(40, 40, 80, 32)];
[gradientButton setButtonType:NSMomentaryPushInButton];
[gradientButton setBezelStyle:NSSmallSquareBezelStyle];
[gradientButton setTitle:@"Title"];
[self.window.contentView addSubview:gradientButton];

结果:

enter image description here

关于macos - NSButton渐变样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9077405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com