簡體   English   中英

獲取NSStatusItem的長度

[英]Get length of NSStatusItem

我的應用程序中有一個NSStatusItem,可以將其配置為顯示一些文本。 該文本可以更改,問題是,每更改一次長度,整個狀態項就會更改其長度,這會導致“寬度閃爍”。

我考慮過將狀態項的長度設置為NSVariableStatusItemLength ,插入盡可能長的文本,取回長度,然后將其設置為狀態項的恆定長度。 但是,看起來NSStatusItemlength函數NSStatusItem完全沒有用,因為它只是返回NSVariableStatusItemLength而不是實際長度。

因此,還有另一種方法可以預先計算NSStatusItem容納文本和圖標的時間。 例如,是否在所有Mac系統上都確保圖標和字體/大小相同,因此我可以簡單地“測量”系統上的最佳長度?

一種獲取長度的解決方法是使用[NSImage size].width獲取狀態項中任何圖標的寬度,然后使用[NSString sizeWithAttributes:nil].width獲取字符串的寬度。 加入調味料。

使用私有API的另一種方法是設置最長的字符串,然后按以下方式獲取寬度:

[[statusItem _window] frame].size.width

暫無
暫無

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

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