我正在制作一个自定义窗口(带有NSBorderlessWindowMask的NSWindow)到目前为止,我已经能够处理拖动,调整大小,cmd +点击甚至小型化,如果允许的话,双击(参见here),这样我的窗口就像尽可能多的正常NSWindow。
然而,当我将窗口拖到屏幕的一角时,用户希望将该窗口移动到下一个空格。 (如果您在“SystemPreferences”>“曝光和空格”>“空格”>“启用空格”中启用了空格,则
我想知道如何以编程方式更改到其他空间并将窗口移到那里?
答案 0 :(得分:4)
不幸的是,没有公共API允许您这样做,但如果您愿意使用私有API,那么它是可能的。看一下CGSPrivate.h,你会发现你可以这样打电话:
CGSConnection connection = _CGSDefaultConnection();
CGSMoveWorkspaceWindowList(connection, &windowNumber, 1, newSpaceNumber);
请注意,使用此私有API会导致您的应用从Apple的Mac App Store中被拒绝。
答案 1 :(得分:1)
最后我找到了解决方案。
我无法以编程方式更改为某个空格,但如果NSBorderlessWindowMask
完成,我可以使我的窗口像其他非[window setMovableByWindowBackground:YES]
一样。这是这个问题的最终目的:)
这里写的是解决方案(有一些细节),因为这个问题看起来比较老(或者可能是这个问题的副本?)