Me doy cuenta de que llego un poco tarde, pero mi solución a este problema fue garantizar que la clase a la que el generador de interfaces se estaba "arrastrando" era la misma que la clase en la que estaba: en otras palabras, todo debe ser en la misma clase.
Por ejemplo, si tengo las clases A
y B
, y un guión gráfico: necesitaría asegurarme de que el guión gráfico esté configurado para una clase. Si lo configuro a A
, solo conectaría elementos a la clase A
, si configurara la clase a B
, intentar conectar elementos a la clase A
tendría una línea azul pero no Insert Outlet or Action
o Connect Outlet/Action
.
Una representación visual:
ViewController.swift:
import Cocoa
class FirstClass: NSViewController {
// some code here
}
class SecondClass: NSViewController {
// some more code here
}
Aquí hemos declarado dos clases, FirstClass
y SecondClass
. Si observa su guión gráfico en blanco ( Main.storyboard
para el propósito de esta respuesta), debería ver algo similar a lo siguiente:
Ahora,hagaclicenlaventanadebajodeViewController(enblancoenunnuevoproyecto),yseleccionelapestañaquesepareceunpocoaunperiódicoenelInspector.
Deberíaverlaclasepredeterminada(ViewController)formateadacomounacadenademarcadordeposiciónenelcampodetextopara"Clase". Intentar Control + Arrastrar no le permitiría crear una instancia del elemento que esté tratando de agregar a FirstClass
o SecondClass
, pero solo lo permitiría para la clase especificada, ViewController
(por alguna razón no puedo capturarlo).
Para agregar un elemento a FirstClass
, cambia el texto en el campo Clase a FirstClass
(con un poco de autocompletado de suerte deberías terminarlo por ti):
Ahora, Control + Arrastrar un elemento del Generador de Interfaz a FirstClass
debería funcionar, pero no se aplicará a SecondClass
. Cambie el nombre de la clase personalizada a la clase que se adapte a sus necesidades.