如何在屏幕外创建一个窗口



我正在学习MAC OS开发,我使用Swift和Cocoa创建了一个我想在屏幕外显示的窗口。我的代码是这样的:

@IBAction func tapShowSplitWindow(_ sender: Any) {
let initRect = NSRect(x: -100, y: -100, width: 300.0, height: 300.0)
var window = NSWindow(contentRect: initRect,styleMask: .titled, backing: .buffered, defer: false)
window.contentView = NSView()
window.contentView?.wantsLayer = true
window.contentView?.layer?.backgroundColor = NSColor.red.cgColor

window.makeKeyAndOrderFront(self)
}

窗口将出现在屏幕的左下角,我希望它在屏幕之外。

为什么?以及如何在

外显示它

window.makeKeyAndOrderFront(self)移动屏幕上的窗口。如果你真的希望窗口是半可见的,你可以用setFrameOrigin

把它移回来
window.makeKeyAndOrderFront(self)
window.setFrameOrigin(window.frameRect(forContentRect:initRect).origin)
// Reference: https://stackoverflow.com/questions/35808924/placing-nswindow-at-top-of-screen-without-1-pixel-margin
class FullscreenWindow: NSWindow {
override func constrainFrameRect(_ frameRect: NSRect, to screen: NSScreen?) -> NSRect {
print("Rect: (frameRect)")
return NSRect(origin: .zero, size: frameRect.size)
}
}

可以覆盖constrainFrameRect来设置窗口的矩形

相关内容

  • 没有找到相关文章

最新更新