如何更改NSWSow的NSScreen

xiz*_*zor 3 cocoa nswindow nswindowcontroller

我有一个应用程序,将根据按下哪个按钮加载几个窗口.除了其中一个打开主屏幕(主窗口打开的屏幕)之外的所有内容.其中一个(首选项窗口)在第一个屏幕(带有菜单栏的屏幕)上打开.我无法理解它是这样做的,有没有办法改变NSWindow打开的屏幕?

xiz*_*zor 5

我无法得到太多的工作答案.我最终做的是继承NSWindow,然后重写constrainFrameRect:toScreen:.这将自动打开应用程序"主屏幕"上的新窗口.

- (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screen
{
    AppDelegate *delegate = [[NSApplication sharedApplication] delegate];
    return [super constrainFrameRect:frameRect toScreen:delegate.window.screen];
}
Run Code Online (Sandbox Code Playgroud)