0

我有一个NSPopuButton,第一次打开就很慢,因为它画了很多东西。第二次和之后的每次都非常快。

我该怎么做才能预呈现菜单,这样即使第一次打开也很快?

到目前为止,我已经尝试在 applicationWillLaunch 中创建菜单,创建后,我调用 popupMenuPositioningItem:atLocation:inView:。

这工作得很好,但问题是它在屏幕上显示菜单。我尝试创建一个屏幕外窗口和视图,并在那里打开菜单,但它总是被绘制在屏幕内。

有没有办法预渲染菜单,或者显示它但强制它离开屏幕?

谢谢。

4

2 回答 2

0

那就另当别论了。我会放弃弹出按钮并使用带有下拉图标的常规按钮。单击它会显示带有字体列表的 NSTableView 的 NSPopover。与菜单不同,表格针对显示大量数据和延迟加载进行了优化。最初它只会加载可见行的字体。

于 2014-04-18T21:14:03.353 回答
0

你应该找出为什么需要这么长时间。很可能是某种文件活动(如加载图像或数据)或计算。我不认为这是绘图本身(每次都会慢慢绘制)。

使用“时间分析器”或“文件活动”工具来查找有问题的方法调用。然后优化该代码或预先调用它。

于 2014-04-16T00:08:16.267 回答