显示工作表时,NSheet控制器无法运行。

时间:2018-05-04 15:45:34

标签: dialog modal-dialog nswindow

在Objective-C环境中,我有一个自定义控制器“MyWindowController”作为相关XIB的文件所有者,用作我主窗口上的模态表。

根据Apple文档调用以下内容(减去弃用):

precision = tf.identity(precision)

目前,MyWindowController是NSWindowController的一个最小子类,包括以下按钮:

//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中设置的断点,包括其awakeFromNib中的断点,永远不会到达。

我在表格主题上尝试了很多变化,所有效果都相同,我很难过。

1 个答案:

答案 0 :(得分:1)

[[NSWindowController alloc] initWithWindowNibName:@"MyWindowController"]

创建NSWindowController的实例。如果您想要MyWindowController的实例,请使用

[[MyWindowController alloc] initWithWindowNibName:@"MyWindowController"]