문제

두 개의 Wind 시트가 필요한 경우 컨트롤러가 호출됩니다.

[NSApp beginSheet: sheetWindow modalForWindow: mainWindow modalDelegate: self didEndSelector: @selector(didEndSheet:returnCode:contextInfo:) contextInfo: nil];

시트 창을 표시하고 모달 세션을 시작합니다. 하지만 창에는 표준 아쿠아 제목 표시 줄이 있으며 기본 창에 '연결'되지 않으며 일반 창처럼 움직일 수 있습니다. 말할 것도없이, 이것은 바람직하지 않습니다 :-). 이 방식으로 시트가 일반적으로 시작될 때처럼 시트가 실행되는 창의 "팝 아웃"이없는 이유는 무엇입니까?

컨트롤러 내부의 시트를 시작했다는 사실이 궁금했습니다. -awakeFromNib 효과가있을 수 있으므로 나중에 트리거 할 수있는 버튼의 동작으로 시트를 옮겼습니다. 이것은 행동을 바꾸지 않았습니다. 나는 시도 할 다른 것을 생각하지 않았다. Xcode 3.1을 사용하여 10.5 SDK를 목표로하고 있습니다.

편집하다: 그래서 모달 대화 상자를 만든 것 같습니다. 시트와 앱 모달 대화 상자는 둘 다 시작됩니다 -beginSheet:modalForWindow:modalDelegate:didEndSelector:contextInfo: 방법. 그러나 내 창문이 시트이고 ~ 아니다 모달 대화?

도움이 되었습니까?

해결책

MainWindow가 nil이면 시트가 창/대화식으로 표시됩니다.

다른 팁

이것은 며칠 전에 나에게 일어났다 :

  • 당신은 설정하는 것을 잊었습니다 창문 창 컨트롤러의 아울렛 (파일의 소유자 펜촉 파일). Nathan이 지적한 바와 같이, 당신은 -[NSWindowController window] 메소드는 nil을 반환합니다.
  • 당신은 또한 그것을 선택 취소해야합니다 출시시 보입니다 시트의 옵션.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top