mik*_*n32 9 macos cocoa objective-c
前几天我注意到我的一个网页看起来很难看.页面上的按钮看起来完全不同,基于它们是否包含一行文本或两行.
经过一番挖掘后,我了解到典型的按钮使用了NSRoundedBezelStyle,但它有一个固定的高度.因此,如果文本要打包,Firefox(以及Chrome和Safari)将更改要使用的按钮,该按钮NSShadowlessSquareBezelStyle可以具有可变高度.我想请求这些浏览器的维护者改变这一点,并正在研究最佳替代方案.
在找到已经提交的错误并进行一些阅读后,我建议也许他们可以使用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";
Run Code Online (Sandbox Code Playgroud)
证明:

如果您在优胜美地下看到不同的结果,则需要发布代码。据猜测,您可能会使用-init而不是初始化按钮-initWithFrame:,这可能会导致各种绘图问题,因为NSButton是 an NSView,因此其指定的初始化程序是-initWithFrame:。不过只是猜测。
| 归档时间: |
|
| 查看次数: |
434 次 |
| 最近记录: |