2014-11-17 1 views
6

NSSplitViewController의 설명서에 따르면 관련 NSSplitView는 NSSplitViewController를 대리자로 사용합니다. 특히 문서에서 "분할 뷰 컨트롤러는 분할 뷰 객체 (분할자를 관리하는 객체)의 대리인 역할을합니다. 분할 뷰 대리자 메서드를 재정의하는 경우 재정의는 super를 호출해야합니다."Xcode 6을 사용하는 OSX 10.10의 NSSplitViewController

인터페이스 작성기에 NSSplitViewController를 구현하고 클래스를 부여했습니다. 그러나 splitView 대리자는 호출되지 않습니다. 또한, 만약 내가 split 같은 것을 할 경우 splitView 대리인 [NSLog (@ "% @", self.splitView.delegate); ]이면 결과는 "null"입니다.

An uncaught exception was raised
SplitViewController's splitView is unable to use autolayout because the SplitViewController overrides an incompatible delegate method.

: 내가 얻을 다음과 같은 오류; 그러나, 나는 ([자기 self.splitView setDelegate])합니다 (NSSplitViewController에 위임 콘센트를 드래그하여) 또는 코드 내부에 IB 그 자체로 하나 대리자를 할당하는 경우 나는 완전히 난처했다.

답변

17

분할보기의 대리자가 다음 방법 중 하나를 구현하면 자동 레이아웃과 호환되지 않습니다.


그리고

https://developer.apple.com/library/mac/releasenotes/AppKit/RN-AppKitOlderNotes/#10_8AutoLayout

splitView:constrainMinCoordinate:ofSubviewAt: 
splitView:constrainMaxCoordinate:ofSubviewAt: 
splitView:resizeSubviewsWithOldSize: 
splitView:shouldAdjustSizeOfSubview: 
NSSplitViewController이 (문서에서 언급) 자동 레이아웃의 사용, 이러한 방법은 NSSplitViewController와 호환되지 않는 및 서브 클래스에서 구현하지 않아야을 필요로하기 때문이다.

+2

감사합니다. 나는 원래 옵션이 낮고 (250) 높고 (750), 내가 이것을했을 때 내가 기대했던 행동을 얻지 못했을 때 원래 이것에 대해 매우 혼란 스러웠다. 서브 뷰 0을 유지 패턴을 260으로 변경하고 서브 뷰 1을 250으로 유지하는 패턴을 남겨두면, 정확히 무엇을 하려는지 알 수 있습니다. 매우 감사! –

+0

감사! 이 정보는 어디서나 문서에 기록되지 않습니다! – b123400

관련 문제