"'NSOffState' no está disponible en Swift"

Tengo una extensión de NSView con una function simple llamada clearControllersInView () que toma todos los controlleres en la vista y los establece en un valor pnetworkingeterminado (es decir, casillas de verificación desactivadas, windows emergentes y combos para el primer elemento del menu, campos de text para vaciar la cadena). No tuve problemas con esto en Swift 3.

Estoy usando la versión beta actual de Xcode 9 y actualizando esta extensión a Swift 4. El problema está en la sección de event handling las casillas donde obtengo el error "'NSOffState' no está disponible en Swift" cuando bash establecer la checkbox en NSOffState :

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

Estaba recibiendo el mismo error en otro lugar de este progtwig donde controlo el valor de una checkbox. Pude arreglar temporalmente esas instancias comprobando contra el valor sin procesar de los controlleres:
si checkbox.state == NSOnState – error
si checkbox.state.rawValue == 1 – sin error

No pude encontrar una solución buscando aquí o Google en general. ¡Cualquier ayuda sería muy apreciada!

Primero , haga clic en el state que verá

introduzca la descripción de la imagen aquí

El tipo de state se ha cambiado a NSControl.StateValue , eso es claramente una enumeración o una estructura.

Entonces simplemente escribe . y usa la finalización del código

introduzca la descripción de la imagen aquí


PS: if item is NSButton , puede escribir de manera segura

 let checkbox = item as! NSButton 

o aún mejor usar encuadernaciones opcionales

 if let checkbox = item as? NSButton { ...