2012-07-07 2 views
0

NSView와 NSTextField가있는 NSWindow가 있습니다.동일한 NSWindow에있는 코코아 컨트롤을 참조하는 방법은 무엇입니까?

지금 인터페이스 빌더를 사용하고 있습니다. 기본 NSWindow에서 두 컨트롤을 삭제하고 NSView를 서브 클래 싱했습니다. NSView에서 -drawRect 메서드를 구현 중이며 NSTextField의 내용에 액세스해야합니다.

NSView 내부의 메소드에서 NSTextField의 인스턴스를 어떻게 참조 할 수 있습니까?

+0

적절한 [샘플 코드] (http://sscce.org/)가 없으면 이런 종류의 질문에 대답 할 수 없습니다. – outis

답변

2

NSWindow는 윈도우 컨트롤러에 의해 제어됩니다. IB에서는 창 컨트롤러에 NSTextField 콘센트를 만듭니다. 콘센트를 사용하면 다음 NSTextField있는 참조 할 수 있습니다 :

를 창문 컨트롤러에서 .H 파일 :

@property (strong) IBOutlet NSTextField *myTextField; 

를 창문 컨트롤러에서하는 .m 파일 :

@synthesize myTextField; 

을 할 수 거기에서 귀하의 컨트롤러 :

[[self myTextField] setEditable: NO]; 

주목할 점은 당신이 컨트롤에 액세스하지 않는다는 것입니다 창 (그리고 그 문제에 대한 모든 코코아 컨트롤)로 정적으로 XIB/NIB 파일에 저장됩니다. 컨트롤 (UI 요소)에 대한 모든 액세스는 XIB/NIB 파일을로드 할 수있는 컨트롤러 (NSWindowController, NSViewController)를 통해 채널링됩니다.

Apple은 다양한 방법으로 문서를 제공합니다.

관련 문제