Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 如何更改显示NSI窗口的NSI屏幕_Cocoa_Nswindow_Nswindowcontroller - Fatal编程技术网

Cocoa 如何更改显示NSI窗口的NSI屏幕

Cocoa 如何更改显示NSI窗口的NSI屏幕,cocoa,nswindow,nswindowcontroller,Cocoa,Nswindow,Nswindowcontroller,我有一个应用程序,它将根据按下的按钮加载几个窗口。除其中一个外,所有窗口都在主屏幕(主窗口在中打开的屏幕)上打开。其中一个(首选项窗口)在第一个屏幕(带有菜单栏的屏幕)上打开。我不明白它是怎么做的,有没有办法改变NSWindow打开的屏幕?我不知道你为什么会有这种行为,但你可以通过使用NSScreen参数的initWithFrame方法来改变它。我无法得到toohtik的答案。我最后做的是子类化NSWindow,然后覆盖ConstraintFrameRect:toScreen:。这将自动打开应用

我有一个应用程序,它将根据按下的按钮加载几个窗口。除其中一个外,所有窗口都在主屏幕(主窗口在中打开的屏幕)上打开。其中一个(首选项窗口)在第一个屏幕(带有菜单栏的屏幕)上打开。我不明白它是怎么做的,有没有办法改变NSWindow打开的屏幕?

我不知道你为什么会有这种行为,但你可以通过使用NSScreen参数的initWithFrame方法来改变它。

我无法得到toohtik的答案。我最后做的是子类化NSWindow,然后覆盖ConstraintFrameRect:toScreen:。这将自动打开应用程序“主屏幕”上的新窗口

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