我正在使用NSDrawNinePartImage()
繪製可拉伸控件。由於這當然需要九個單獨的圖像來繪製這些部分(加上一些額外的東西),我有一個目錄充滿了像top-left.png
和[email protected]
這樣的文件。我將這個目錄包含在我的應用程序包中作爲文件夾引用。從子目錄加載視網膜圖像
不幸的是,像-[NSImage imageNamed:]
和-[NSBundle imageForResource:]
這樣的常見圖像加載API似乎不支持子目錄,即使您在名稱中加入了斜槓。相反,我加載圖像用這種方法:
- (NSImage*)popoverImage:(NSString*)name {
NSURL * url = [[NSBundle bundleForClass:self.class] URLForResource:name withExtension:@"png" subdirectory:@"popover"];
return [[NSImage alloc] initWithContentsOfURL:url];
}
也能正常工作正常顯示,但它忽略了2倍的圖像的Retina顯示屏。我怎樣才能讓它加載視網膜圖像呢?有沒有比分別加載兩個代表並手工合併更好的方法?我寧願不使用TIFF作爲這些資源的源文件,因爲我使用Acorn作爲圖像編輯器,而且最後一次檢查時,它並不真正瞭解像這樣的複合圖像格式。
「合併高分辨率圖稿」似乎不影響文件夾引用。任何想法如何解決這個問題? – 2013-05-10 21:20:55
@ BrentRoyal-Gordon - 對不起,我不知道你最好的答案。要看的東西包括:包括文件而不是文件夾(你仍然可以用Acorn編輯它們);使用構建階段腳本來合併和複製文件;並使用嵌套捆綁(添加一個捆綁子項目,把圖像放在那裏,讓Xcode構建並複製捆綁包 - 可能聽起來過分誇張,但捆綁只是一個文件夾,它只是讓Xcode生成文件夾的一種方式)。 HTH – CRD 2013-05-11 07:13:56