[英]Get length of NSStatusItem
我的應用程序中有一個NSStatusItem,可以將其配置為顯示一些文本。 該文本可以更改,問題是,每更改一次長度,整個狀態項就會更改其長度,這會導致“寬度閃爍”。
我考慮過將狀態項的長度設置為NSVariableStatusItemLength
,插入盡可能長的文本,取回長度,然后將其設置為狀態項的恆定長度。 但是,看起來NSStatusItem
的length
函數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.