I have simple code :
var openPanel = NSOpenPanel();
openPanel.beginSheet(this.View.Window, (obj) => {
//do stuff
openPanel.endSheet(this.View.Window);
});
有时候,工作表窗口不会显示出来,但会发出忙碌的声音。我的代码有问题吗?
我从splitViewcontroller的一个项目中调用了这段代码。
I have simple code :
var openPanel = NSOpenPanel();
openPanel.beginSheet(this.View.Window, (obj) => {
//do stuff
openPanel.endSheet(this.View.Window);
});
有时候,工作表窗口不会显示出来,但会发出忙碌的声音。我的代码有问题吗?
我从splitViewcontroller的一个项目中调用了这段代码。
[panel beginSheetModalForWindow:window completionHandler:^(NSInteger result){ }
我使用Xcode自动补全的帮助进行了一个即兴的Swift翻译:
let openPanel = NSOpenPanel()
openPanel.beginSheet(window) { (modalResponse: NSApplication.ModalResponse) in
}
这种方法是无效的。运行代码后,窗口标题栏会消失,且不会显示面板。
请使用正确的Swift方法beginSheetModal
:
openPanel.beginSheetModal(for: window) { (modalResponse: NSApplication.ModalResponse) in
}
试试这个:
let panel = NSOpenPanel()
self.window?.beginSheet(panel, completionHandler: { (modalResponse: NSModalResponse) in
if modalResponse == NSModalResponseOK {
// do your stuff
}
})