我有一个 NSDocument
子类,它有自己的 xib 文件。我还有一个 NSViewController
子类,它也有自己的 xib 文件,我想以模态方式呈现它的 View ,就像这个一样。
问题是,它总是显示为一个没有标题栏的独立 float 窗口。
我试图呈现的 View 包含在该 xib 文件的一个窗口中。是的,它是 Mac OS X 10.10。这是代码。
@IBAction func didPressEditF(sender: AnyObject) {
let controller = ViewController(nibName: "ViewController", bundle: nil)
let window = self.windowControllers[0].window as NSWindow
window.beginSheet(controller.view.window, completionHandler: didEndPresentingF)
}
如果你能帮我使用 Objective-C 就好了。
最佳答案
好的。我想通了。
一开始。我们需要 ViewController
类的一个属性,这样它就不会在显示后被释放。
var controller: ViewController?
然后我们需要一个方法来返回当前文档的窗口。 self.windowControllers[0].window as NSWindow
无法正常工作。
func window() -> NSWindow {
let windowControllers = self.windowControllers
let controller = windowControllers[0] as NSWindowController
let window = controller.window
return window
}
最后,打开工作表窗口的代码如下所示:
@IBAction func didPressEditF(sender: AnyObject) {
controller = ViewController(nibName: "ViewController", bundle: nil)
self.window().beginSheet(controller!.view.window, completionHandler: didEndPresentingF)
}
Apple 必须对其过时的文档采取一些措施。
关于macos - 在 NSDocument 的窗口中以模态方式呈现 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24959496/