2011-11-15 3 views
1

사과 문서에는 nsapplication이 주 펜촉의 파일 소유자라는 내용이 나와 있습니다. 이것은 단지 템플릿에 의해 설정 되었습니까? 아니면 첫 번째 펜촉을로드해야합니까? 이렇게로드합니까?파일 소유자 및 nsapplication, appdelegate

또한 나머지 게시물을 통해 파일 소유자에 대한 내용을 읽었 는데도 여전히 혼란 스럽습니다. Iboutlet이 객체를 가리킬 수 있습니까? Iboutlet이 nibs 파일 소유자의 속성이고 해당 객체가 해당 nib 내에있는 경우? 펜촉은 왜 주인의 수업을 알아야합니까? 객체 이외에? 이것을 알거나 알지 못함으로써 활성화 또는 비활성화되는 것은 무엇입니까?

한 번 더,이 사진에 appdelegate는 어디에 적합합니까? 앱 대리인을 변경할 수 있습니까? 엑스 코드의 응용 프로그램 템플릿을 설정

+0

[Apple Doc - 처음 iOS 앱 만들기] (http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iPhone101/Articles/00_Introduction.html#//apple_ref/) doc/uid/TP40007514); 특히 기본 디자인 패턴 이해 *에 관한 부분. 위임, 뷰 컨트롤러 등을 설명합니다. – chown

+1

내가 말하는 것만 큼 이해할 수 있습니다. 자세한 내용은 – rubixibuc

답변

9

:-)

덕분에 MainMenu.xib은 오너로서 NSApp로드합니다. 이것은 NSApplicationMain 함수에 의해 수행됩니다. NSApplicationMain은 앱의 Info.plist 파일에서 NSMainNibFile 키를 조회합니다. 해당 키를 찾으면 해당 값을로드 할 nib 파일의 이름으로 사용합니다. Xcode의 앱 템플릿은 NSMainNibFileMainMenu으로 설정합니다.

그렇게하지 않아도됩니다. Info.plist에서 NSMainNibFile 항목을 변경하거나 삭제할 수 있습니다. 도 아니고을 사용하면 NSApplicationMain을 사용할 수 있습니다. 대신 [NSApplication sharedApplication]을 호출하여 을 초기화 한 다음 프로그래밍 방식으로 또는 nibs를로드하여 사용자 인터페이스를 만들고 [NSApp run]을 호출 할 수 있습니다.

nib 로더는 콘센트를 펜촉의 객체 또는 파일 소유자, 첫 번째 응답자 또는 응용 프로그램에만 연결할 수 있습니다. 콘센트 자체는 파일 소유자가 아니어도됩니다. 펜촉의 모든 물체에있을 수 있습니다.

File 소유자의 클래스를 설정하면 Interface Builder가 소스 코드를 검색하여 해당 클래스의 선언을 찾습니다. 이것이 File Owner가 가져야 만하는 아웃렛과 액션을 아는 방법입니다.

일반적으로 응용 프로그램 대리인은 응용 프로그램의 최상위 컨트롤러입니다. 다양한 응용 프로그램 수준 이벤트가 발생하면이를 알립니다. NSApplicationDelegate Protocol Reference을보십시오.

Xcode의 응용 프로그램 템플릿에서 응용 프로그램 대리인은 파일 소유자의 delegate 콘센트에 연결되어있는 MainMenu.xib (사용자 인터페이스가 아닌 개체가 펜촉에있을 수 있음)의 개체입니다. 원하는대로 클래스를 수정할 수 있습니다. 펜촉에서 오브젝트를 완전히 삭제할 수도 있습니다. 그러나 어떤 심각한 앱이라도 앱 대리인이 필요합니다.

+0

입니다. 도움을 주셔서 감사합니다. 나는 무엇인가를 이해하고 있는지 확인하고 싶습니다. 펜촉 내에서 액세스 할 수 있으며 (연결 및 연결 모두) 펜촉과 프록시 객체 내의 객체입니까? 그렇다면이 제한이 설정된 이유는 무엇입니까? – rubixibuc