首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSButton梯度式

NSButton梯度式
EN

Stack Overflow用户
提问于 2012-01-31 09:51:19
回答 2查看 3.9K关注 0票数 4

在Interface组件中有渐变按钮

我想以编程的方式创建这个按钮。但我找不到按钮型、贝塞尔式和渐变式的组合来复制它。我的本地目标是创建加号(添加)和减号(删除)按钮,如下所示

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

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

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

代码语言:javascript
复制
<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>

我将尝试使用此信息复制按钮。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-31 08:03:09

天啊,我瞎了。只需将bezel样式设置为NSSmallSquareBezelStyle,将按钮类型设置为NSMomentaryPushInButton即可。

我不需要照片。我不需要使用CoreGraphics进行自定义绘图(我为此做了自己的类)。我不需要解析xib。我不需要转储运行时结构(我这样做是为了在outlet中查找字段的Nesses节值到用xib创建的渐变按钮)。我不得不尝试所有来自文档的贝塞尔风格的价值观。但是,如果您在文档中阅读了NSSmallSquareBezelStyle的描述,您就会理解我的困惑:它与IB向导中的“梯度”值相去甚远。

正确代码:

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

结果:

票数 8
EN

Stack Overflow用户

发布于 2012-01-31 18:22:43

我相信您所引用的按钮是一个自定义按钮,可能是一个自定义背景图像,尽管它肯定可以通过编程方式创建。这些类型的按钮的问题在于,有几个按钮的变体,它们看起来都非常相似,但略有不同。

创建这些按钮的最简单方法是使用渐变按钮,并将Xcode股票图标中的+和-图像拖到它们上。否则,您可能需要四处寻找一个与您想要的样子类似的自定义NSButton。我相信有一些开源的程序,有这些,但我不记得他们从我的头顶。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9077405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档