假设我们有两个屏幕方案和一个NSWindow
,
位于屏幕1的边缘。
该窗口的一部分也显示在屏幕2上。
我想要实现的目标是仅在屏幕1上绘制窗口,而不在屏幕2上显示其余部分。
原因在于它是某种特殊表现的迷你窗口,而不是通常的窗口。
是否可以指定某个NSScreen来开启窗口?
答案 0 :(得分:0)
不是我听说过的。
你可以做的是限制窗口的位置,例如通过NSWindowDelegate
和windowDidMove:
来听取位置变化并适当地重新定位窗口。
答案 1 :(得分:0)
两种截然不同的方法:
使用小牛:你在寻找的内容听起来就像是小牛队的“屏幕有独立空间”模式。在这种模式下,除了在拖动操作期间,窗口永远不会在两个屏幕上绘制,有时窗口在一个屏幕上绘制,其中任何区域突出到相邻的屏幕上。因此,如果您可以将使用限制在10.9,这可能会为您节省一些工作。
无边界Windows :您可以创建无边框非透明NSWindow
,只需设置相应的标记即可。这就是应用程序创建非方形窗口的方式,窗口的可见区域现在完全取决于您。现在只需使用标准剪辑支持将绘图剪辑到一个屏幕上的区域。你不会有一个标准的标题栏或控件,除非你自己模拟它们,所以你必须自己实现拖动等等。你说你有“某种特殊行为的迷你窗口,而不是通常的窗口“所以这可能不是问题。