作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
好吧,这真的难倒我了:
我在窗口上创建了一个模态表
-(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/
好吧,这真的难倒我了: 我在窗口上创建了一个模态表 -(IBAction) login: (id) sender { [NSApp beginSheet:loginWindow modalFor
我是一名优秀的程序员,十分优秀!