gpt4 book ai didi

objective-c - NSApplication endSheet : has no effect

转载 作者:太空狗 更新时间:2023-10-30 03:20:16 25 4
gpt4 key购买 nike

好吧,这真的难倒我了:

我在窗口上创建了一个模态表

-(IBAction) login: (id) sender {
[NSApp beginSheet:loginWindow
modalForWindow:window
modalDelegate:nil
didEndSelector:nil
contextInfo:nil];
}

并尝试用

删除它
-(IBAction) loginWindowCancelPressed:   (id) sender {
debugLog(@"cancel");
[NSApp endSheet:loginWindow];
}

但它仍然存在。

我已经检查了所有明显的事情,例如 IB 连接,并确保 window 和 loginWindow 存在并处于正常状态。

所以,问题是:我是否遗漏了什么?

最佳答案

您必须为工作表设置委托(delegate)。委托(delegate)应实现具有如下签名的方法:

- (void)didEndSheet:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo;

(您可以根据需要使用不同的名称,但它应该接受相同的参数。)

你可以在该方法中做任何你需要做的事情,但最终它应该以:

[sheet orderOut:self];

这将关闭工作表。

关于objective-c - NSApplication endSheet : has no effect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3576096/

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