Cocoa Window在重新打开时不记得它的位置

时间:2013-04-29 21:13:23

标签: objective-c cocoa webview nib

我上周启动了目标C,所以我才刚刚开始了解MVC设计模式是如何工作的。基本上我在cocoa中下载了这个开源Web应用程序包装器:

https://github.com/maccman/macgap

我希望改变它,以便在我重新打开它时记住它的窗口位置。

我已经尝试打开笔尖并为自动保存分配值但是这不起作用。在研究了这个问题之后我发现这是因为窗口控制器会自动转换级联,所以在WindowController.m中我放了

[[self.window windowController] setShouldCascadeWindows:NO];
[self.window setFrameAutosaveName:[self.window representedFilename]];

我尝试将它放在windowDidLoad和init方法中,但这也不起作用,窗口仍然不记得它的位置。

最后在AppDelegate中我注意到这是实际创建控制器的代码:

- (void) applicationDidFinishLaunching:(NSNotification *)aNotification { 
    NSRect frame = NSMakeRect(0, 0, 800, 600);
    self.windowController = [[WindowController alloc] initWithURL: kStartPage
                                                         andFrame:frame];
    [self.windowController showWindow: [NSApplication sharedApplication].delegate];
    self.windowController.contentView.webView.alphaValue = 1.0;
    self.windowController.contentView.alphaValue = 1.0;
    [self.windowController showWindow:self];
}

正如我所说,我上周开始使用objective-c(用于iOS开发),从中我知道NSMakeRect正在确定窗口位置。现在,我也从Java中知道我可以做一些事情,比如在移动时将坐标写入二进制文件,然后在我启动程序时读取该文件并将这些值提供给NSMakeRect,但我不认为这是最优雅的解决方案。

0 个答案:

没有答案