gpt4 book ai didi

objective-c - 在基于 Cocoa Document 的应用程序启动中禁用打开面板

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

我编写了一个基于文档的应用程序,该应用程序启动时禁止自动创建新文档,而不会恢复以前打开的文档。

现在我还想禁用应用程序启动时出现的打开面板。

打开的面板有时会在我的应用程序委托(delegate)中的 applicationWillFinishLaunching:applicationDidFinishLaunching: 之间启动。

我能弄清楚如何禁用此功能的唯一方法是在子类中覆盖 [NSDocumentController openDocument:] ,然后创建一个辅助“帮助程序”方法,然后我将其连接到文件>打开菜单。这似乎是一个非常老套的解决方案,想看看是否有人有更好的想法。

1   Core Animator                       0x0000000100042121 -[NSDocumentController openDocument:] + 49
2 AppKit 0x00007fff8772ffe6 -[NSDocumentController(NSInternal) _showOpenPanel] + 63
3 AppKit 0x00007fff87244184 -[NSApplication _doOpenUntitled] + 290
4 AppKit 0x00007fff87243c91 __58-[NSApplication(NSAppleEventHandling) _handleAEOpenEvent:]_block_invoke + 252
5 AppKit 0x00007fff87243a59 __97-[NSDocumentController(NSInternal) _autoreopenDocumentsIgnoringExpendable:withCompletionHandler:]_block_invoke_3 + 140
6 AppKit 0x00007fff872435a1 -[NSDocumentController(NSInternal) _autoreopenDocumentsIgnoringExpendable:withCompletionHandler:] + 798
7 AppKit 0x00007fff87241cc6 -[NSApplication _reopenWindowsAsNecessaryIncludingRestorableState:registeringAsReady:completionHandler:] + 331
8 AppKit 0x00007fff87241a49 -[NSApplication(NSAppleEventHandling) _handleAEOpenEvent:] + 561
9 AppKit 0x00007fff87241495 -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] + 244

最佳答案

我的 NSDocumentController 子类中的以下代码似乎也有效:

override func runModalOpenPanel(_ openPanel: NSOpenPanel, forTypes types: [String]?) -> Int {
if !NSApp.isActive {
return 0
}
return super.runModalOpenPanel(openPanel, forTypes: types)
}

关于objective-c - 在基于 Cocoa Document 的应用程序启动中禁用打开面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30914489/

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