在 Storyboard 中使用 NSWindowController 加载 Sheet
Loading Sheet with NSWindowController in Storyboard
我在故事板中有一个 NSWindowController(与 NSViewController 有关系),我需要一个 sheet 来加载 NSWindowController 的 window (好吧,实际上是整个应用程序)。我正在使用 beginSheet 方法,但它只会将 sheet 加载到侧面,并且不会禁用它后面的 window。如果我将一个工具栏添加到 NSWindowController 并带有一个按钮来加载 sheet,它会完美地工作。不幸的是,我需要这个 sheet 在应用程序启动时加载。
在之前的应用程序中,我没有使用故事板,只使用了 xibs,我在应用程序委托的 applicationDidFinishLaunching 方法中使用 beginSheet 方法加载了 sheet window,但是如果我在此应用程序中尝试相同的设置, sheet 仅加载到此应用程序的一侧,不禁用主程序 window。
启动时可见未勾选。 (我进行了足够多的搜索,发现这通常是人们的问题。)
var sheetWindow = NSWindow(contentRect: NSMakeRect(0, 0, 600, 150), styleMask: NSTitledWindowMask, backing: NSBackingStoreType.Buffered, defer: true)
self.window!.beginSheet(sheetWindow, completionHandler: nil)
在我的 IB 连接检查器中,对于 Window 控制器的 window,我将其设置为 Window 控制器的 window 并且我有 Window 控制器作为其委托。
即使在我的 NSWindowController 的 windowDidLoad 方法中尝试调用工具栏按钮调用的相同方法,加载仍然与其 window 断开连接。
任何方向将不胜感激,我一整天都没有想出任何办法。我正在使用 Yosemite.
我能够通过将代码放在 ViewController class 上的 viewDidAppear() 中来解决它,但是将 sheet 附加到 WindowController 的 window。
var sheetWindow = NSWindow(contentRect: NSMakeRect(0, 0, 600, 150), styleMask: NSTitledWindowMask, backing: NSBackingStoreType.Buffered, defer: true)
let windowController = self.view.window?.windowController() as! windowController
windowController.window!.beginSheet(sheetWindow, completionHandler: nil)
我在故事板中有一个 NSWindowController(与 NSViewController 有关系),我需要一个 sheet 来加载 NSWindowController 的 window (好吧,实际上是整个应用程序)。我正在使用 beginSheet 方法,但它只会将 sheet 加载到侧面,并且不会禁用它后面的 window。如果我将一个工具栏添加到 NSWindowController 并带有一个按钮来加载 sheet,它会完美地工作。不幸的是,我需要这个 sheet 在应用程序启动时加载。
在之前的应用程序中,我没有使用故事板,只使用了 xibs,我在应用程序委托的 applicationDidFinishLaunching 方法中使用 beginSheet 方法加载了 sheet window,但是如果我在此应用程序中尝试相同的设置, sheet 仅加载到此应用程序的一侧,不禁用主程序 window。
启动时可见未勾选。 (我进行了足够多的搜索,发现这通常是人们的问题。)
var sheetWindow = NSWindow(contentRect: NSMakeRect(0, 0, 600, 150), styleMask: NSTitledWindowMask, backing: NSBackingStoreType.Buffered, defer: true)
self.window!.beginSheet(sheetWindow, completionHandler: nil)
在我的 IB 连接检查器中,对于 Window 控制器的 window,我将其设置为 Window 控制器的 window 并且我有 Window 控制器作为其委托。
即使在我的 NSWindowController 的 windowDidLoad 方法中尝试调用工具栏按钮调用的相同方法,加载仍然与其 window 断开连接。
任何方向将不胜感激,我一整天都没有想出任何办法。我正在使用 Yosemite.
我能够通过将代码放在 ViewController class 上的 viewDidAppear() 中来解决它,但是将 sheet 附加到 WindowController 的 window。
var sheetWindow = NSWindow(contentRect: NSMakeRect(0, 0, 600, 150), styleMask: NSTitledWindowMask, backing: NSBackingStoreType.Buffered, defer: true)
let windowController = self.view.window?.windowController() as! windowController
windowController.window!.beginSheet(sheetWindow, completionHandler: nil)