【发布时间】:2016-12-08 00:55:52
【问题描述】:
这里的想法很简单,我想在一个应用程序中显示所有 NSWindows。这个想法是应用程序中有两个窗口,一个是隐藏的,另一个是可见的。我想显示应用程序中的所有窗口,然后隐藏一个。我可以隐藏我想隐藏的窗口,但我无法显示这些窗口,因为我无法获得对它的引用。是否有获取应用程序中所有 nswindows 的列表然后遍历它并隐藏它们或类似的东西,我可以使用 [NSApp windows] 但是尝试使用
NSArray *windowArray = [NSApp windows];
[windowArray[0] makeKeyAndOrderFront:self];
[NSApp activateIgnoringOtherApps:YES];
不起作用,也不起作用:
NSArray *windowArray = [NSApp windows];
NSWindow *tempWindow = windowArray[0];
[tempWindow makeKeyAndOrderFront:self];
[NSApp activateIgnoringOtherApps:YES];
有什么建议吗?
【问题讨论】:
-
这取决于您是否有 xib 文件或窗口控制器 + 视图控制器来容纳窗口。也不清楚您是否有多个 xib 文件或情节提要。
-
它使用一个包含两个 nswindows 的 nib 文件(这是 xcode 2.5)
-
我只假设 windowArray 确实包含对您的 xib 文件中所有现有窗口的引用。那么它不应该类似于 for (NSWindow *win in windowArray) { [win setIsVisible = YES]; } ?我不会自己测试它,因为我不再编写 Objective-C。
-
如何隐藏窗口?
-
[menuWindow OrderOut:self]
标签: objective-c macos cocoa nswindow osx-tiger