“'NSOffState' 在 Swift 中不可用”
"'NSOffState' is unavailable in Swift"
我有一个 NSView 的扩展,带有一个名为 clearControllersInView() 的简单函数,它获取视图中的所有控制器并将它们设置为默认值(即复选框关闭,弹出窗口和组合到第一个菜单项,文本字段到空字符串)。在 Swift 3.
下,我对此没有任何问题
我正在使用 Xcode 9 的当前测试版并将此扩展更新为 Swift 4。问题出在我收到错误“'NSOffState' 在 Swift 中不可用”,当尝试将复选框设置为 NSOffState 时:
if item is NSButton {
let checkbox = item as? NSButton
checkbox?.state = **NSOffState** -- *'NSOffState' is unavailable in Swift*
}
我在这个程序的其他地方遇到了同样的错误,我检查了一个复选框的值。我能够通过检查控制器原始值来临时修复这些实例:
if checkbox.state == NSOnState -- 错误
if checkbox.state.rawValue == 1 -- 没有错误
无法通过在此处搜索或一般情况下 Google 找到解决方案。任何帮助将不胜感激!
首先 ⌥-点击 在 state
你会看到
state
的类型已更改为NSControl.StateValue
,这显然是枚举或结构。
所以只需键入 .
并使用代码完成
PS: if item is NSButton
你可以放心地写
let checkbox = item as! NSButton
或者更好地使用可选绑定
if let checkbox = item as? NSButton { ...
我有一个 NSView 的扩展,带有一个名为 clearControllersInView() 的简单函数,它获取视图中的所有控制器并将它们设置为默认值(即复选框关闭,弹出窗口和组合到第一个菜单项,文本字段到空字符串)。在 Swift 3.
下,我对此没有任何问题我正在使用 Xcode 9 的当前测试版并将此扩展更新为 Swift 4。问题出在我收到错误“'NSOffState' 在 Swift 中不可用”,当尝试将复选框设置为 NSOffState 时:
if item is NSButton {
let checkbox = item as? NSButton
checkbox?.state = **NSOffState** -- *'NSOffState' is unavailable in Swift*
}
我在这个程序的其他地方遇到了同样的错误,我检查了一个复选框的值。我能够通过检查控制器原始值来临时修复这些实例:
if checkbox.state == NSOnState -- 错误
if checkbox.state.rawValue == 1 -- 没有错误
无法通过在此处搜索或一般情况下 Google 找到解决方案。任何帮助将不胜感激!
首先 ⌥-点击 在 state
你会看到
state
的类型已更改为NSControl.StateValue
,这显然是枚举或结构。
所以只需键入 .
并使用代码完成
PS: if item is NSButton
你可以放心地写
let checkbox = item as! NSButton
或者更好地使用可选绑定
if let checkbox = item as? NSButton { ...