提问人:miken32 提问时间:4/23/2015 最后编辑:Joshua Nozzimiken32 更新时间:5/2/2015 访问量:494
如何在 NSTexturedSquareBezelStyle 按钮周围绘制边框
How to draw a border around an NSTexturedSquareBezelStyle button
问:
前几天我注意到我的一个网页看起来很丑。页面上的按钮看起来完全不同,具体取决于它们是否包含一行或两行文本。
经过一番挖掘,我了解到典型的按钮使用 ,但它有一个固定的高度。因此,如果文本要换行,Firefox(以及 Chrome 和 Safari)将更改按钮以使用 NSShadowlessSquareBezelStyle
,它可以具有可变高度。我想请求这些浏览器的维护者改变这一点,并正在研究最佳替代方案。NSRoundedBezelStyle
在找到已经提交的错误并做了一些阅读后,我建议他们也许可以使用。事实证明,在 Mavericks 中,它看起来几乎与按钮完全相同。优胜美地也一样,只是它没有边界。更改没有效果。NSTexturedSquareBezelStyle
NSRoundedBezelStyle
setBordered
因此,我代表各地的浏览器开发人员提出问题:是否可以绘制带有边框的 NSTexturedSquareBezelStyle
按钮?或者,有没有其他方法,所有浏览器供应商都错过了?
答:
重写的答案
我没有看到一个按钮在优胜美地中显示无边框:NSTexturedSquareBezelStyle
这是从 Interface Builder 中的调色板中拖动的库存按钮。我鼓励你发布你的代码,因为你很可能是在代码中生成你的按钮。这是我自己生成相同按钮的代码:
NSButton * anotherButton = [[NSButton alloc] initWithFrame:NSMakeRect(10.0, 10.0, 100.0, 100.0)];
anotherButton.bezelStyle = NSTexturedSquareBezelStyle;
anotherButton.title = @"Line 1\nLine 2";
证明:
如果您在 Yosemite 下看到不同的结果,则需要发布您的代码。据推测,您可能正在使用 而不是 来初始化您的按钮,这可能会导致各种绘图问题,因为 是 ,因此其指定的初始值设定项是 。不过只是一个猜测。-init
-initWithFrame:
NSButton
NSView
-initWithFrame:
评论