//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;
}
面临的问题
- 上面的代码显示无标题窗口
- 如果我从[w makeKeyAndOrderFront:nil];
条件中删除if
,则所有带有无标题窗口的窗口都会显示一次
- 使用open untitled方法不会停止显示窗口
必需 - 我只想关闭窗口打开
答案 0 :(得分:0)
在对上述代码进行更多调查后,我找到了解决方案,如下所示
- 使用的方法是正确的 - 要再次加载相同的屏幕,我们需要在application.windows数组中找到该屏幕的索引。这可以通过使用代码来完成:
for (int i; i<[[[NSApplication sharedApplication]windows] count]; i++)
{
if (yourwindow==[[[NSApplication sharedApplication]windows] objectAtIndex:i])
{
NSLog(@"%d",i);
//i is your screen index
}
}
现在在提到的代码中使用索引加载窗口,它也会阻止显示无标题窗口
注意:在加载方法完成后,应该使用窗口索引。