[英]Where is the window outlet in an NSDocument
我的應用程序已從非基於文檔的應用程序轉換為基於文檔的應用程序。 我通過創建NSDocument
的子類Document
做到這一點。 我還創建了一個Document.xib
並將其“文件所有者”設置為Document
。
現在在Document.xib
,我可以看到其“文件所有者”中有一個window
出口。 我沒有在Document
定義的window
出口。 它從何而來? 我猜它來自超類NSDocument
,但是我無法訪問Document
該變量。 奇怪的window
風口怎么了?
看看-[NSDocument setWindow:]
的文檔
如果文件的所有者窗口出口已連接到該筆尖,則在加載此文件為其文件所有者的任何筆尖期間,將自動調用此方法。 您不應直接調用此方法,通常也不會覆蓋它。
NSDocument
不會直接處理NSWindow
,但是會保留一個NSWindowController
列表,您可以通過-[NSDocument windowControllers]
方法訪問。 我的猜測是,調用setWindow:
時,它將窗口包裝在新的NSWindowController
並將其添加到列表中。
您應該可以使用以下內容訪問窗口:
NSWindowController* controller = self.windowControllers.lastObject;
NSWindow* window = controller.window;
我剛剛創建了一個新項目對其進行測試,並且可以正常工作:
- (void)windowControllerDidLoadNib:(NSWindowController *)aController {
[super windowControllerDidLoadNib:aController];
NSLog(@"%@", [self.windowControllers.lastObject window]);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.