macOS では二つ目以降のウインドウは規則的にズレて表示される。
でも NSWindow は NSRect を指定して作成する、どうやっているのか。
cascadeTopLeftFromPoint: – Cocoa API解説(macOS/iOS)
そういうことか、解説ありがとう。
window を作った後に自分で移動するのね。
objc.super(MyWindow, self).initWithContentRect_styleMask_backing_defer_(
frame,
NSTitledWindowMask |
NSClosableWindowMask |
NSResizableWindowMask |
NSMiniaturizableWindowMask,
NSBackingStoreBuffered,
False)
# Cascade Position
if len(NSApp.windows()) > 1:
point = NSApp.keyWindow().cascadeTopLeftFromPoint_(NSZeroPoint)
self.setFrameTopLeftPoint_(point)
で。
うん macOS アプリっぽくなった。
次は設定ダイアログの位置決めをどうするかだ。
小ネタでした。
