2011-09-11 3 views
1

관련 컨트롤러에서 액세스 할 수있는 버튼이있는 펜촉이 있습니다. 하지만 지금 주인은 일반적인 NSViewController이며, AppDelegate에 내부 내가 좋아하는 컨트롤러에 펜촉을 할당 : 일반적으로 버튼의 참조 콘센트를 할당 할 nib 파일 내에서컨트롤러를 지정하지 않고 .nib에 콘센트를 정의 할 수 있습니까?

[browseViewController initWithNibName:@"BrowseView" bundle:[NSBundle mainBundle]]; 

하지만이 가능? 즉, 콘센트에 이름을 지정하고 File 's Owner를 가리키고, 그 콘트롤러에 같은 이름의 콘센트가있는 경우 펜촉이 콘트롤러에 연결되어 있다면 그냥 작동합니다.

답변

1

파일 소유자는 IB에서 특정 콘센트 및/또는 동작을 가져야합니다. 존재하지 않는 콘센트에 연결할 수 있다고해도 펜촉을 넣을 때 예외가 발생합니다. 콘센트를 확인하고, 객체에 연결하고, 펜촉을 저장하고, 객체에서 콘센트를 삭제하고, 응용 프로그램을 실행하고 싶습니다. NSUnknownKeyException가 발생합니다.

가장 쉬운 방법은 컨트롤러의 공통 수퍼 클래스를 사용하는 것입니다. 컨트롤러가 공통 조상으로부터 파생 될 수 없다면, 내가 볼 수있는 유일한 해결 방법은 콘센트 속성과 동작을 정의하는 프로토콜을 만드는 것입니다. MyNibProtocol>

NSObject의 < 이제 아웃렛과 액션을 연결하기 위해 펜촉이 객체를 사용하는 프로토콜에

을 MyObject를 준수하는 개체가 확인하십시오. 그러나 속성과 메서드는 선택적 일 수 없으므로이를 구현해야합니다.

관련 문제