我有一个应用程序,它将根据按下的按钮加载几个窗口。除其中之一外,所有这些都在主屏幕(打开主窗口的屏幕)上打开。其中一个(首选项窗口)在第一个屏幕(带有菜单栏的屏幕)上打开。我无法理解它是如何做到这一点的,有没有办法更改 NSWindow 打开的屏幕?
最佳答案
我无法让 Toohtik 的答案生效。我最终做的是子类化 NSWindow,然后重写 constrainFrameRect: toScreen:。这将自动在应用程序的“主屏幕”上打开新窗口。
- (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screen
{
AppDelegate *delegate = [[NSApplication sharedApplication] delegate];
return [super constrainFrameRect:frameRect toScreen:delegate.window.screen];
}
关于cocoa - 如何更改 NSWindow 出现的 NSScreen,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10195977/