나는 stretchable 컨트롤을 그리기 위해 NSDrawNinePartImage()
을 사용하고 있습니다. 물론이 부분은 9 개의 별도 이미지가 필요하고 그 위에 그려지는 일부 추가 이미지가 필요하기 때문에 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 배 이미지를 무시합니다. 망막 이미지를로드하려면 어떻게해야합니까? 별도로 두 담당자를로드하고 손으로 결합하는 것보다 나은 방법이 있습니까? 나는 이미지 파일 편집기로 도토리를 사용하고 마지막으로 확인했을 때 그와 같은 복합 이미지 형식을 실제로 이해하지 못하기 때문에 이러한 리소스에 대한 소스 파일로 TIFF를 사용하지 않을 것입니다.
"고해상도 아트웍 결합"은 폴더 참조에 영향을 미치지 않는 것 같습니다. 어떻게 해결할 수 있을지 생각해? –
@ BrentRoyal-Gordon - 죄송 합니다만, 나는 당신에게 최고의 대답을 모르겠습니다. 살펴볼 사항은 다음과 같습니다. 폴더가 아닌 파일 포함 (여전히 도토리로 편집 가능). 빌드 단계 스크립트를 사용하여 파일을 결합 및 복사합니다. 중첩 된 번들을 사용하여 (번들 하위 프로젝트를 추가하고, 이미지를 넣고, 번들을 빌드하고 복사하도록합니다. 잔인한 소리가 들리 겠지만 번들은 단지 폴더입니다. Xcode에서 폴더를 생성하는 방법 일뿐입니다). HTH – CRD