首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取NSStatusItem的长度

获取NSStatusItem的长度
EN

Stack Overflow用户
提问于 2011-08-19 19:18:03
回答 1查看 531关注 0票数 1

我的应用程序中有一个NSStatusItem,可以配置为显示一些文本。此文本可以更改,问题是,每次更改长度时,整个状态项都会更改其长度,这会导致“宽度闪烁”。

我考虑将状态项的长度设置为NSVariableStatusItemLength,插入尽可能长的文本,重新获得长度,然后将其设置为状态项的恒定长度。但是,看起来NSStatusItemlength函数对此完全没有用处,因为它只返回NSVariableStatusItemLength而不是实际长度。

那么,有没有其他方法可以预先计算NSStatusItem需要多长时间才能容纳一些文本和可选的图标?例如,图标和字体/大小是否保证在所有Mac系统上都是相同的,这样我就可以简单地在我的系统上“测量”一个最佳长度?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-22 03:42:42

获取长度的一种解决方法是使用[NSImage size].width获取状态项中任何图标的宽度,然后使用[NSString sizeWithAttributes:nil].width获取字符串的宽度。根据口味添加填充物。

另一种使用私有API的方法是设置最长的字符串,然后获取宽度,如下所示:

代码语言:javascript
复制
[[statusItem _window] frame].size.width
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7120792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档