NSButton标题不是垂直居中,而是稍微低一点



我是macOS编程的新手,这可能是一个愚蠢的问题,但它让我卡住了。

我正在尝试对NSButton进行子类化并创建一个更可自定义的按钮类。 除了标题没有垂直居中,从垂直中心向下偏移几个像素以更具体,一切都运行良好。

后来我才发现,就连土生土长的NSButton的标题也有这个"问题"。下面是示例:

单击我查看图像

为了进行比较,我在左侧放置了一个普通的方形NSButton,右侧是我的自定义NSButton,两个按钮中的标题都比中心低一点。

所以我的问题来了:

  1. 为什么会这样?
  2. 如何设置绝对居中的标题?

这是我设置可自定义标题的代码(如果您想知道(:

我正在使用一个名为 SwiftyAttributes 的库设置attributedTtile,这就是出现这些.withFont内容的原因。

let paragraph = NSMutableParagraphStyle()
paragraph.alignment = .center
attributedTitle = title
.withFont(.systemFont(ofSize: 13))
.withParagraphStyle(paragraph)
.withTextColor(titleColor)

这个答案对我有帮助,也许可以回答为什么会这样

链接

好吧,我在这里使用链接中引用的代码进行了测试,并得到了以下代码:

override func titleRect(forBounds rect: NSRect) -> NSRect {
var theRect = super.titleRect(forBounds: rect)
theRect.origin.y = rect.origin.y+rect.size.height-(theRect.size.height+(theRect.origin.y-rect.origin.y))-2;
return theRect
}

覆盖NSButtonCellfunc titleRect(forBounds rect: NSRect( -> NSRect我能够集中文本。

最新更新