关闭后 NWindow 从停靠图标重新显示多次

NSwindow re show multiple times from dock icon after closed

//My code:

- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag
{
    if(flag==NO)
    {
         id window;

        NSWindow *w = window;

       for(w in theApplication.windows)
        {   if(w==[[theApplication windows]objectAtIndex:0])
            {
                [w makeKeyAndOrderFront:nil]; 
            }
        }

    }
    return YES;
}

- (BOOL)applicationShouldOpenUntitledFile:(NSApplication *)sender;
{
     return NO;
}
- (BOOL)applicationOpenUntitledFile:(NSApplication *)sender
{

    return NO;
}

面临的问题 -以上代码显示无标题window -如果我从 if 条件中删除 [w makeKeyAndOrderFront:nil]; 那么所有 windows 和无标题 window 都会显示一次 - 使用 open untitled 方法不会停止其 window 显示

必填 -我只想关闭 window 打开

在对上述代码进行更多调查后,我找到了如下解决方案

-使用的方法是正确的 - 要再次加载相同的屏幕,我们需要在 application.windows array.That 中找到该屏幕的索引,可以使用代码完成:

for (int i; i<[[[NSApplication sharedApplication]windows] count]; i++)
    {
        if (yourwindow==[[[NSApplication sharedApplication]windows] objectAtIndex:i])
        {
            NSLog(@"%d",i);
           //i is your screen index
        }
    }

现在使用提到的代码中的索引加载 window,它也会阻止显示未命名的 window

注意:查找window的索引应该在加载方法完成后使用。