gpt4 book ai didi

objective-c - cocoa :如何重新打开关闭的窗口?

转载 作者:行者123 更新时间:2023-12-03 17:33:43 28 4
gpt4 key购买 nike

我制作的程序没有 nib\xib 文件。这是简单的 NSOpengGl 窗口。它工作正常,但是当我关闭窗口(红色按钮)并想再次打开它(通过单击任务栏图标)时 - 它不起作用。applicationShouldHandleReopen - 不调用。这是我的代码:

   @interface OGLView: NSOpenGLView <NSApplicationDelegate,NSWindowDelegate>
@end

@implementation OGLView
-(BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag
{
printf("bingo");//does not called
return YES;
}

@end

和初始化:

....
view = [[OGLView alloc] initWithFrame:glRect pixelFormat:fmt];
[[view openGLContext] makeCurrentContext];

win = [ [NSWindow alloc]
initWithContentRect: e
styleMask:
NSTitledWindowMask
| NSClosableWindowMask
|NSMiniaturizableWindowMask
| NSResizableWindowMask
backing: NSBackingStoreBuffered
defer: YES ];

[win orderFrontRegardless];
[win setReleasedWhenClosed:NO];
[win setContentView:view];
[win makeFirstResponder:view];
[win setAcceptsMouseMovedEvents:YES];
[win setContentView:view];
[view setNeedsDisplay:YES];

[win setDelegate:view ];

[view display];
[win makeKeyAndOrderFront: view];
...

我认为 applicationShouldHandleReopen 不会被调用,因为它必须不是从 NSView 对象调用而是从委托(delegate)调用。但我正在使用

[win setDelegate:view ];

我如何调用这个委托(delegate)方法?谢谢!

最佳答案

在应用程序“applicationShouldHandleReopen”方法中使您的窗口 orderFront

 -(BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag
{
[win makeKeyAndOrderFront:self];
return YES;
}

您应该在应用程序委托(delegate)中调用“applicationShouldHandleReopen”方法,而不是在 View 内。

关于objective-c - cocoa :如何重新打开关闭的窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31368228/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com