[window setFrameAutosaveName:@"MainFrame"];
と書いておけばUserDefaultにウィンドウの位置情報を勝手に記憶して、再現してくれることを知る。やってみて首をひねってしまった。
ウィンドウの大きさを次の状態で終了する。
ちょっと縦長にしていおく、と。しかし次回起動時になるとこんなありさまになる。
InterfaceBuilderで設定してある大きさのようだ。というわけでInterfaceBuilderの中をあちこちいじったり探したりしたけれど、それらしい設定はない。変だなあ、ということで、とりあえず、awakeFormNibで一番最初にsetFrameAutosaveNameを書いたところ、期待する動作ができるようになった。順番、関係あるのか?
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { // Insert code here to initialize your application [window setFrameAutosaveName:@"MainFrame"]; [window setStyleMask:NSBorderlessWindowMask]; [window setOpaque:NO]; [window setBackgroundColor:[NSColor clearColor]]; [window setMovableByWindowBackground:YES]; [window makeKeyAndOrderFront:self]; }
さらに起動中のsetOpaque:の変更について。これもあれこれやってみたところ、メインのウィンドウをNSPanalにしておいて、
[window setStyleMask:NSResizableWindowMask | NSUtilityWindowMask ];に変更した場合、もう一度
[window setStyleMask:NSBorderlessWindowMask]; [window setOpaque:NO];としてもおかしな動作がなかった。うーん、よくわかんない、結果オーライだけど。
半透明なウィンドウをデスクトップのどこかにおいておいて、そこでマウスホイールをころころさせたらworkspaceが切り替わる、という自分用のアプリを書いている。iMacの大画面だと、Warpを使うにもマウスの移動量が大変。だからデスクトップの右下4分の1くらいの領域をworkspace切り替え用に使えればけっこう幸せになるだろう、と。
実はマイクロソフトマウスの第4、第5ボタンに「ctrl+→」とかを割り当てていて、それでworkspaceかえられるのだけれど、今イチ押しづらいんだよなあ。
0 件のコメント:
コメントを投稿