Swift 类型转换
Swift type conversion
如何将 NSApplicationPresentationOptions
转换为 AnyObject?
? as
在这里不起作用。
我要打电话:
func enterFullScreenMode(_ screen: NSScreen, withOptions options: [NSObject: AnyObject]?) -> Bool
我有:
let presOptions: NSApplicationPresentationOptions =
.HideDock | // Dock is entirely unavailable. Spotlight menu is disabled.
.AutoHideMenuBar | // Menu Bar appears when moused to.
.DisableAppleMenu | // All Apple menu items are disabled.
.DisableProcessSwitching | // Cmd+Tab UI is disabled. All Exposé functionality is also disabled.
.DisableForceQuit | // Cmd+Opt+Esc panel is disabled.
.DisableSessionTermination | // PowerKey panel and Restart/Shut Down/Log Out are disabled.
.DisableHideApplication | // Application "Hide" menu item is disabled.
.AutoHideToolbar |
.FullScreen
let optionsDictionary = [NSFullScreenModeApplicationPresentationOptions: presOptions]
browserWindowController.containerView.enterFullScreenMode(NSScreen.mainScreen()!, withOptions: optionsDictionary)
最后一行出现错误:
Cannot invoke 'enterFullScreenMode' with an argument list of type '(NSScreen, with Options: [String : NSApplicationPresentationOptions])'
根据documentation,对应的值为
钥匙
NSFullScreenModeApplicationPresentationOptions
是 NSNumber
的一个实例,包含 NSApplicationPresentationOptions
的无符号整数值,因此这应该有效:
let optionsDictionary = [NSFullScreenModeApplicationPresentationOptions :
NSNumber(unsignedLong: presOptions.rawValue)]
如何将 NSApplicationPresentationOptions
转换为 AnyObject?
? as
在这里不起作用。
我要打电话:
func enterFullScreenMode(_ screen: NSScreen, withOptions options: [NSObject: AnyObject]?) -> Bool
我有:
let presOptions: NSApplicationPresentationOptions =
.HideDock | // Dock is entirely unavailable. Spotlight menu is disabled.
.AutoHideMenuBar | // Menu Bar appears when moused to.
.DisableAppleMenu | // All Apple menu items are disabled.
.DisableProcessSwitching | // Cmd+Tab UI is disabled. All Exposé functionality is also disabled.
.DisableForceQuit | // Cmd+Opt+Esc panel is disabled.
.DisableSessionTermination | // PowerKey panel and Restart/Shut Down/Log Out are disabled.
.DisableHideApplication | // Application "Hide" menu item is disabled.
.AutoHideToolbar |
.FullScreen
let optionsDictionary = [NSFullScreenModeApplicationPresentationOptions: presOptions]
browserWindowController.containerView.enterFullScreenMode(NSScreen.mainScreen()!, withOptions: optionsDictionary)
最后一行出现错误:
Cannot invoke 'enterFullScreenMode' with an argument list of type '(NSScreen, with Options: [String : NSApplicationPresentationOptions])'
根据documentation,对应的值为
钥匙
NSFullScreenModeApplicationPresentationOptions
是 NSNumber
的一个实例,包含 NSApplicationPresentationOptions
的无符号整数值,因此这应该有效:
let optionsDictionary = [NSFullScreenModeApplicationPresentationOptions :
NSNumber(unsignedLong: presOptions.rawValue)]