Conceptually, this is what happens:
- Just call
NSWindow.addTabbedWindow(_:ordered:)to add a window to the native tab panels. NSResponder.newWindowForTab(_:) , "+" .window.tabbingMode = .preferred .
.
newWindowForTab
, @IBAction override func newWindowForTab(_ sender: Any?), NSWindow.addTabbedWindow(_:ordered:)?
- ,
NSWindowController. NSWindow addTabbedWindow. - Xibs,
AppDelegate . . - , ,
NSWindow.
, "+"
TL; DR: , - windowController. ( ).
TabManager, :
https://github.com/DivineDominion/NSWindow-Tabbing
:
https://christiantietze.de/posts/2019/07/nswindow-tabbing-multiple-nswindowcontroller/
, . , newWindowForTab. NSApp.sendAction , - , , NSWindowController, , AppDelegate.
, , , , , ( /). "+" , .
, @JohnV : " subview ". , . , /, ; newWindowForTab.
" " - NSWindow. newWindowForTab . .
@Peter Ahlberg, :
class WindowController: NSWindowController {
@IBAction override func newWindowForTab(_ sender: Any?) {
let windowController: WindowController = self.storyboard?.instantiateInitialController() as! WindowController
let newWindow = windowController.window
self.window?.addTabbedWindow(newWindow, ordered: .above)
newWindow.orderFront(self.window)
newWindow.makeKey()
}
}
newWindowForTab AppDelegate, , !