dialog - 显示工作表时,NSheet 控制器不会运行。
问题描述
在 Objective-C 环境中,我有一个自定义控制器“MyWindowController”作为相关 XIB 的文件所有者,用作我的主窗口上的模式表。
根据 Apple 文档按如下方式调用(减去弃用):
//in the main's awakeFromNib
MyWindowController = [[NSWindowController alloc]
initWithWindowNibName:@"MyWindowController"];
//in the main place where needed
[NSApp beginSheet: MyWindowController.window
modalForWindow: _window
modalDelegate: nil
didEndSelector: nil
contextInfo: nil ];
[NSApp runModalForWindow: MyWindowController];
// Dialog is up here.
[NSApp endSheet: MyWindowController.window];
[MyWindowController.window orderOut:self];
目前,MyWindowController 是 NSWindowController 的最小子类,包括以下按钮:
- (IBAction)doCancel:(id)sender
{
//...set return value
[NSApp stopModal];
}
当正在运行的主代码调用时,工作表会正确显示,但控制器中的代码永远不会运行。在 MyWindowController 中设置的断点,包括在其 awakeFromNib 处的断点永远不会到达。
我在工作表主题上尝试了这么多变体,效果都一样,我很难过。
解决方案
[[NSWindowController alloc] initWithWindowNibName:@"MyWindowController"]
创建一个NSWindowController
. 如果您想要 的实例MyWindowController
,请使用
[[MyWindowController alloc] initWithWindowNibName:@"MyWindowController"]
推荐阅读
- mailchimp - Mailchimp DMARC 失败 4% 的时间
- arrays - 根据 Main 的返回值不同
- python - 导入“tensorflow.math”无法解决
- google-data-studio - 给定原始数据,如何在 Google Data Studio 报告中实现此输出?
- javascript - 如何将大量数据传递给 Deno 中的 process.stdin.write?
- python - 从 MacOS 终端运行时 numpy ImportError 失败
- c# - 如何创建实体,将其添加到我的数据库上下文,并从另一个控制器返回其属性?
- python-3.x - 为什么 Nuitka 提示编译返回错误?
- sql - 计算另一个表中匹配 2 个 id 和 Postgresql 中某个日期之后的行
- graphql - Graphql 加载状态停留在 true