簡體   English   中英

“'NSOffState'在Swift中不可用”

[英]“'NSOffState' is unavailable in Swift”

我有一個名為clearControllersInView()的簡單函數的NSView擴展,它接受視圖中的所有控制器並將它們設置為默認值(即關閉,彈出和組合到第一個菜單項,textfields到空字符串的復選框)。 在Swift 3下我沒有遇到任何問題。

我正在使用Xcode 9的當前測試版並將此擴展更新為Swift 4.問題出在部分處理復選框中,當我嘗試將復選框設置為NSOffState時,我收到錯誤“'NSOffState'在Swift中不可用” :

if item is NSButton {
    let checkbox = item as? NSButton
    checkbox?.state = **NSOffState**  -- *'NSOffState' is unavailable in Swift*
}

我在這個程序的其他地方得到了同樣的錯誤,我檢查了一個復選框的值。 我可以通過檢查控制器原始值來臨時修復這些實例:
如果checkbox.state == NSOnState - 錯誤
如果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 { ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM