私は先週オブジェクティブ C を始めたので、MVC 設計パターンがどのように機能するかを理解し始めたところです。基本的に、ココアでこのオープン ソースの 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];
}
私が言ったように、私は先週(iOS開発のために)objective-cを開始しました。それから、NSMakeRectがウィンドウの位置を決定していることがわかります。今、私は Java から、移動時に座標をバイナリ ファイルに書き込み、プログラムの起動時にそのファイルを読み取り、これらの値を NSMakeRect に入力するなどのことができることも知っていますが、これはそうではないと思います最もエレガントなソリューション。