【问题标题】:Mac app not using retina @2x image filesMac 应用程序不使用视网膜 @2x 图像文件
【发布时间】:2012-08-27 19:03:11
【问题描述】:

我正在尝试更新我的应用程序以支持 Retina 显示器,但是当它在 Retina MacBook Pro 上运行时,@2x 版本的图像没有被使用。以下是我在应用中设置图像视图的方法。

在 XML 解析器类中:

[[self theCurrent] setCurIcon:[NSImage imageNamed:@"snow.png"]];

在 Current 类中设置 NSImageView:

[viewCurIcon setImage:curIcon];

每个图像文件都有一个标准分辨率版本和一个高分辨率版本,它们都在 Xcode 项目的支持文件夹中:

snow.png is 128x128 pixels
snow@2x.png is 256x256 pixels

我确认在 Xcode 构建应用程序时,应用程序包中包含了 @2x 版本。其他需要注意的事项是:该应用程序是一个菜单栏应用程序,所有视图都位于 NSPopover 中,其中一个图像视图中使用了动画 GIF(没有@2x 版本的 GIF),该应用程序使用 Xcode 4.4 构建运行 OSX 10.7.4 且没有视网膜显示屏的旧 MacBook Pro。

【问题讨论】:

  • @NSPostWhenIdle 你确定使用“snow”而不是“snow.png”会起作用吗?我读过的所有内容都使用了文件扩展名。
  • @NSPostWhenIdle 你能提交你的评论作为答案吗?
  • 当然,我刚刚发布了它。它能为您提供帮助吗?我不仅仅是 iOS 的 Mac 开发人员,这就是它的完成方式。我只是假设它会是一样的!

标签: objective-c cocoa retina-display nsimage nsimageview


【解决方案1】:

尝试使用@"snow" 而不是@"snow.png"。这样,您将指向一个名为“snow”的图像,并让操作系统整理有关分辨率和扩展名的详细信息,而不是明确说明该图像将被命名为 "snow.png"

【讨论】:

  • 视网膜图像文件的DPI是否也要增加?例如,标准图像文件为 128x128 像素,图像 DPI 为 72 像素/英寸,而视网膜图像文件为 256x256 像素,图像 DPI 为 72 像素/英寸。视网膜 DPI 应该是 144 像素/英寸吗?
  • @Gavin 72 DPI 对这两个图像都适用,我现在似乎无法以书面形式找到这一点,但我很确定 Apple 会推荐这个。
  • 如果您找到该文档,请告诉我。根据我的视网膜 MBP 好友的说法,从图像文件名中删除 .png 扩展名解决了我的问题!
  • @Gavin 文档中似乎没有关于此的任何内容...我只能找到 Apple 建议 App Store 的图标和屏幕截图应为 72 DPI。但是,我确实发现这篇文章驱逐了一些更好的东西:bjango.com/articles/designingforretina2
  • @wigging, Apple docs on imageNamed: 说“在应用程序包中查找文件时,最好(但不是必需)在名称参数中包含文件扩展名。”我想这是个坏建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多