1.自定义NSWindow,不展示titlebar时,NSViewController作为子视图添加到view上,NSTextField不能编辑
解决:
在自定义的NSWindow中设置canBecomeKey
class IPWindow: NSWindow {
override var canBecomeKey: Bool {
return true
}
}
2.设置窗口可移动
isMovableByWindowBackground = true
3.NSViewController中present界面
let loginVC = IPLoginVC.init()
self.presentAsSheet(loginVC)
4.NSPopover一个NSViewController,隐藏三角指示
let userVC = IPUserVC.init()
let popover = NSPopover.init()
popover.contentViewController = userVC
popover.behavior = .transient
popover.setValue(true, forKey: "shouldHideAnchor")
popover.show(relativeTo: view.bounds, of: view, preferredEdge: NSRectEdge.maxY)
5.弹出新的窗口
let newWindowVC = NewWindowVC.init()
let updateWindow = NSWindow.init(contentViewController: loadVC)
updateWindow.standardWindowButton(.zoomButton)?.isHidden = true
// updateWindow.standardWindowButton(.closeButton)?.isHidden = true
// updateWindow.standardWindowButton(.miniaturizeButton)?.isHidden = true
// updateWindow.titlebarAppearsTransparent = true
updateWindow.styleMask = [updateWindow.styleMask, .fullSizeContentView]
updateWindow.center()
let windowControll = NSWindowController.init(window: updateWindow)
windowControll.showWindow(nil)
6.NSTableView
NSTableView需嵌套在NSScrollView控件中支持滚动
7.打包生成dmg
正常Product-Archive生成app安装包,使用DMG Canvas将app转成dmg
DMG Canvas