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
Objective c 使用[NSBundle loadNibNamed:owner:]加载NIB,但窗口不显示在前景中_Objective C_Cocoa_Macos_Nib_Nsbundle - Fatal编程技术网

Objective c 使用[NSBundle loadNibNamed:owner:]加载NIB,但窗口不显示在前景中

Objective c 使用[NSBundle loadNibNamed:owner:]加载NIB,但窗口不显示在前景中,objective-c,cocoa,macos,nib,nsbundle,Objective C,Cocoa,Macos,Nib,Nsbundle,我编写了一个菜单应用程序,它没有持久窗口或标准菜单。当另一个应用程序有焦点时,我使用菜单集触发打开一个窗口,它出现在前台应用程序的后面(但在屏幕上显示的任何其他内容之上) 基本上 -(IBAction)aboutWindow:(id)sender { [NSBundle loadNibNamed:@"About" owner:self]; } 有人能给我指出正确的方向吗?这样,当这个窗口最初生成时,我就可以让它出现在所有其他应用程序之上 [编辑] 我尝试过在窗口链接的情况下使用自定义N

我编写了一个菜单应用程序,它没有持久窗口或标准菜单。当另一个应用程序有焦点时,我使用菜单集触发打开一个窗口,它出现在前台应用程序的后面(但在屏幕上显示的任何其他内容之上)

基本上

-(IBAction)aboutWindow:(id)sender {
    [NSBundle loadNibNamed:@"About" owner:self];
}
有人能给我指出正确的方向吗?这样,当这个窗口最初生成时,我就可以让它出现在所有其他应用程序之上

[编辑]

我尝试过在窗口链接的情况下使用自定义NSWindowController,并从NIB中唤醒MakeKeyandDerfront方法,但没有任何效果

现在,我有了以下选项,而不是NSBundle调用:

NSWindowController* awc = [[NSWindowController alloc] initWithWindowNibName:@"About"];
[[awc window] makeKeyAndOrderFront:nil];

这就产生了窗口,但仍然无法使其出现在前景中

您可以尝试
makekeyandderfront:

例如,在About窗口的控制器中-假设控制器对窗口的引用为
myWindow

- (void)awakeFromNib 
{
    [myWindow makeKeyAndOrderFront:nil];
}

我明白了。窗口没有问题,是应用程序问题。它不在前景中,因为它本质上是一个菜单集,在生成它之前没有窗口。最终代码:

-(IBAction)aboutWindow:(id)sender {
    NSWindowController* awc = [[NSWindowController alloc] initWithWindowNibName:@"About"];
    [[awc window] makeKeyAndOrderFront:nil];
    [[NSApplication sharedApplication] arrangeInFront:nil];
}

好的,我试着在一个定制的NSWindowController中使用它,但是没有效果。我现在已经删除了最初的NSBundle调用,并拥有:NSWindowController*awc=[[NSWindowController alloc]initWithWindowNibName:@“About”];[[awc窗口]MakeKeyandDerfront:nil];这就产生了这个窗口,但仍然没有在nib包含的前台中出现:文件所有者(NSObject)、第一响应者、应用程序、窗口(NSWindow)->内容视图->静态文本、静态文本。