我有一個NSWindow(mainwindow)爲我的OSX NSApplicationDelegate。 NSWindow還擁有多個使用NSViewControllers設置內容的NSView。目前我遇到了一個問題,當我想要一個NSPanel,一張表,從我的一個NSViews的頂部(而不是從我的應用程序的頂部)下拉。我想用代碼:如何識別modalForWindow使用NSViewController
[NSApp beginSheet:self.loginSheet.window
modalForWindow:self.view.window
modalDelegate:self
didEndSelector:nil
contextInfo:nil];
的loginSheet是NSWindowController的子類加載使用XIB文件:
loginSheet = [[sheetWindowController alloc] initWithWindowNibName:@"loginSheet"];
不過,我從我的NSViewController和我self.view運行這段代碼。窗口總是零。我的NSView似乎以其他方式正確初始化並且工作正常,但由於我的modalForwindow(self.view.window)爲零,工作表下拉不起作用。如果我使用的代碼:
[NSApp beginSheet:self.loginSheet.window
modalForWindow:[[NSApplication sharedApplication] mainWindow]
modalDelegate:self
didEndSelector:nil
contextInfo:nil];
它的作品就像一個魅力。但是,從我所有的尋找問題的答案看來,這種工作方式似乎是一個很大的禁忌,因爲它阻止了整個應用程序的響應。我想我的工作表被鏈接到我的一個NSViews「但我不明白我該怎麼做,因爲該應用程序只有一個NSWindow?我是不是在做一些讓我的self.view.window保持零的東西?有沒有一種方法可以讓我找到自定義視圖的父窗口?如果您對如何解決此問題有任何建議,或者可以給我提示我所做的錯誤,我將不勝感激。
謝謝!歡呼聲,Trond
感謝您指點我正確的方向!我得到這個很好的工作,但我必須使用[[NSApplication sharedApplication] mainWindow]來識別我的窗口。 –