Я создал собственный подкласс NSButtonCell
, который позволяет настраивать отступы между содержимым кнопки. В моей реализации (полный исходный код можно найти на GitHub ), я переопределяю titleRect (forBounds:) , чтобы расположить заголовок кнопки:
var titleSize: NSSize {
return NSSize(width: ceil(attributedTitle.size().width),
height: ceil(attributedTitle.size().height))
}
override func titleRect(forBounds rect: NSRect) -> NSRect {
return CGRect(x: paddingLeft,
y: rect.height / 2 - titleSize.height / 2,
width: titleSize.width,
height: titleSize.height)
}
Результат выглядит не очень хорошо:
Чтобы получить желаемый результат, я должен добавить дополнительный отступ к ширине:
Я также пытался использовать boundingRect (с: options: context:) , чтобы получить размер, но я получил те же результаты.