2012-10-18 3 views
0

어떻게하면 OS X 버전마다 다른 nib 파일을 가질 수 있습니까? 예를 들어 10.6에는 자동 레이아웃 기능이 없기 때문에 10.7 및 10.8에서는 큰 기능입니다. 그래서 가능하다면 10.6 용 펜촉과 10.7 용 펜촉과 10.8 펜촉을 만들 수 있습니다.다른 OS X 버전에 대한 다른 닙

답변

0

네,로드 할 때 다른 NIB 파일 이름을 제공하십시오. 이 작업을 수행 할 수없는 곳은 응용 프로그램 NIB이지만 메뉴 막대 옆에 UI 요소가 없어야하므로 스프링 및 스트럿 (예 : 자동 레이아웃이 아닌)으로 두십시오.

예를 들어 NIB 파일 이름을 사용하기 위해 makeWindowControllers 또는 windowNibNameNSDocument에 덮어 쓸 수 있습니다. 특정 클래스에 대해이 문제를 해결하는 방법에 대한 자세한 내용은 설명서를 참조하십시오. 확실히 할 수 있습니다.

1

확실히. 다른 NIB 파일을 만드십시오. 이 파일의 이름 끝에 버전을 추가 한 다음 런타임에 현재 시스템이 실행중인 OS X 버전을 확인하고 OS X 버전에 맞는 라이브러리를 프로그래밍 방식으로로드하십시오.

응용 프로그램의 "기본"NIB에 대한 작업을 수행하는 것은 다소 어려울 수 있지만 (가능할 수도 있지만 이전에는 사용하지 않았지만 권장하지는 않습니다). 기본 NIB 10.6 호환을 만들고 응용 프로그램 대리인 (프로그래밍 방식으로 작성하는 대신 NIB 파일로 작성하려는 경우)에만 기본 메뉴를 배치하십시오. 별도의 NIB 파일에 모든 창, 뷰 및 기타 UI 요소를 배치 한 후 응용 프로그램 위임 내에서, 그냥 Apple's NIB File DocumentationapplicationDidFinishLaunching:

같은 콜백 프로그래밍 NIB 파일을로드하고, "펜촉 파일 프로그래밍을로드"를 검색합니다. 간단한 일반적인 경우에 대한 몇 가지 샘플 코드뿐만 아니라 필요한 방법에 대한 유용한 링크가 있습니다.

+0

모든 UI 요소는 별도의 펜촉으로 만들어야하며 예를 들어 10.7 OS X 인 경우 실행시에 10.7 용으로 만든 모든 요소의 펜촉을로드하고 10.6이면 모든 요소의 펜촉을로드합니다 10.6에? 그리고 왜 모든 요소와 모든 것이 만들어지는 메인 펜촉을 사용하지 않는 것이 좋습니다? 그렇다면 OS X 버전에 의존하여로드해야하는 것은 두 가지입니다. 간단하게 들리지만 앱을 실행하는 동안의 행동은 더 어려울 것입니다. – hockeyman

+0

@Julius : 주 Nib는 일반적으로 자동으로로드되기 때문에 Nib 프로그래밍 방식으로로드하는 것이 훨씬 어렵습니다. 또한 UI 요소 당 하나의 Nib가 필요하지 않으며, Main, 3 개의 Nib, 모든 10.6 요소 및 모든 10.7+ 요소 만 가질 수 있습니다. 하나의 펜촉에 넣을 수있는 Windows, Views 및 기타 요소의 수에는 제한이 없습니다. 또한 메인 펜촉에 모든 것을 넣을 필요가 없습니다. 응용 프로그램 델리게이트와 주 메뉴를 주 Nib에 넣고 다른 모든 Nib 파일 (메인 윈도우 포함)을 다른 Nib 파일에 넣는 것으로 충분합니다. – Mecki

관련 문제