我有这个代码
import Cocoa
import AppKit
class MainScreenVC: NSViewController {
@IBOutlet var textTest: NSTextField!
override func viewDidLoad() {
super.viewDidLoad()
//let presOptions :NSApplication.PresentationOptions = [.fullScreen, .autoHideMenuBar]
//let optionsDictionary = [NSView.FullScreenModeOptionKey.fullScreenModeApplicationPresentationOptions: presOptions]
//view.enterFullScreenMode(NSScreen.main!, withOptions: optionsDictionary)
textTest.stringValue = "Hello"
}
override var representedObject: Any? {
didSet {
}
}
}
textTest具有约束以在容器的中间显示它。
运行时,应用程序会按预期在窗口中间显示“Hello”。
如果我取消注释进入全屏模式并运行应用程序所需的行,它将进入全屏,但不显示任何文本。
为什么?
我正在使用xCode 10.1
我不知道为什么但我有同样的问题,我想出了2个解决方案,你可以在windowController windowDidLoad函数中使用toggleFullScreen(:)或setFrame(:display:)
e.g:
override func windowDidLoad() {
super.windowDidLoad()
guard let window = window,
let screen = window.screen
else { return }
window.setFrame(window.frameRect(forContentRect: screen.frame), display: true)
}