objective-c xcode model-view-controller interface-builder nswindow

objective c - ¿Cómo desencadenar un método IBAction programáticamente frente a un botón, etc.?



objective-c xcode (2)

No afirmo que esta sea, de manera categórica, la mejor respuesta o la forma correcta de hacerlo, pero un enfoque que funciona es poner lo siguiente en -applicationDidFinishLaunching: :

[self performSelector: @selector(popWindow:) withObject:self afterDelay: 0.0];

Esto hace que se invoque en la siguiente pasada del runloop, momento en el cual lo que no estaba en su lugar ahora está en su lugar.

Puedo "hacer algo" fácilmente, creando un método IBAction y conectándolo a un botón en IB. Por ejemplo...

-(IBAction)popThat:(id)sndr{ [windy setFrame:eRect display:YES];}

Sin embargo, no puedo, por mi vida , descubrir cómo hacer esto a través de un método simple e invocable ... es decir,

-(void) popThatMethod { [windy setFrame:eRect display:YES]; } -(void) awakeFromNib { [self popThatMethod]; }

Esperaría que este método HAGA lo mismo que hacer clic en el botón ... ya que son idénticos ... pero NO . No pasa nada. ¿Que me estoy perdiendo aqui?


Dependiendo de lo que trates de hacer, es posible que desees

[buttonObj sendActionsForControlEvents: UIControlEventTouchUpInside];

Lo cual activa el botón como si hubiera sido tocado, y fuerza cualquier acción que esté conectada a él.

NOTA: esa es la respuesta de cuando hice esta pregunta ASÍ.