gpt4 book ai didi

objective-c - 如何在 NSTexturedSquareBezelStyle 按钮周围绘制边框

转载 作者:太空狗 更新时间:2023-10-30 03:29:34 25 4
gpt4 key购买 nike

前几天我注意到我的一个网页看起来很难看。页面上的按钮看上去是totally different ,取决于它们是否包含一行或两行文本。

经过一些挖掘,我了解到典型的按钮使用 NSRoundedBezelStyle,但它有一个固定的高度。因此,如果文本要换行,Firefox(以及 Chrome 和 Safari)将 change the button to use NSShadowlessSquareBezelStyle它可以有一个可变的高度。我想请愿这些浏览器的维护者改变这一点,并正在研究最佳替代方案。

找到 already-filed bug 之后并做了一些阅读,我建议他们也许可以使用 NSTexturedSquareBezelStyle 代替。事实证明,在 Mavericks 中,它看起来几乎与 NSRoundedBezelStyle 按钮完全相同。优胜美地也一样,只是它没有边界。更改 setBordered 无效。

所以我的问题是,代表各地的浏览器开发人员:是否可以绘制带边框的 NSTexturedSquareBezelStyle 按钮?或者,是否有另一种所有浏览器供应商都错过的解决方法?

最佳答案

重写的答案

我在 Yosemite 中没有看到显示无边框的 NSTexturedSquareBezelStyle 按钮:

NSTexturedSquareButonStyle button under Yosemite.

这是从 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";

证明:

Same button created with code.

如果您在 Yosemite 下看到不同的结果,您需要发布您的代码。据推测,您可能使用 -init 而不是 -initWithFrame: 来初始化按钮,这可能会导致自 NSButton 以来的各种绘图问题是一个 NSView,因此它的指定初始化程序是 -initWithFrame:。不过只是猜测。

关于objective-c - 如何在 NSTexturedSquareBezelStyle 按钮周围绘制边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29806657/

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