簡體   English   中英

NSAttributedString size()方法返回的寬度不正確

[英]NSAttributedString size() method returns incorrect width

我創建了一個自定義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(with:options:context :)來獲取大小,但是得到了相同的結果。

供將來參考:我已解決了這個問題。 使用attributedTitle ,指定按鈕的字體很重要,以便attributedString.size()可以正確計算所需的寬度。 我假設默認情況下,計算是基於NSButton的默認字體,但顯然這是不正確的。 有關更多詳細信息, 請參見我的提交

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM