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 アプリっぽくなった。
次は設定ダイアログの位置決めをどうするかだ。
小ネタでした。