6

IBAction 메서드를 만들어 IB의 단추에 연결하면 쉽게 "할 수 있습니다". 예를 들어 ...버튼을 통해 IBAction 메서드를 프로그래밍 방식으로 트리거하는 방법은 무엇입니까?

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

그러나, 나는 할 수 없습니다, 나의 삶에 대한 ,

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

-(void) awakeFromNib { [self popThatMethod];    } 

즉 ... 단순 호출 방법을 통해이 작업을 수행하는 방법을 알아낼 이 메서드는 단추를 클릭하는 것과 동일한 작업을 수행 할 것으로 예상합니다 ... 이지만 아니요입니다. 아무 반응이 없습니다. 여기에 무엇이 누락되어 있습니까?

+1

너무 일찍 호출했을 수 있습니다. 대신 'applicationDidFinishLaunching' 또는'windowDidLoad'에서 호출 해보십시오. – guitarflow

+0

'- (void) applicationDidFinishLaunching : (NSNotification *) notification'을 사용하지 않고 사용해 보았습니다. –

+1

별도의 메소드를 수행 할 필요가 없습니다. IBAction 반환 메소드를'[self popWindowMethod : self];로 호출하면됩니다. – twilson

답변

6

나는이 절대적으로 가장 좋은 대답하거나 옳은 방법이지만, 작동하는 한 가지 방법은 -applicationDidFinishLaunching:에 다음을 넣어하는 것입니다 언급하지 않습니다

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

이로 인해 runloop의 다음 패스에서 호출되어야하며, 그때까지는 이전에 없었던 것이 무엇이든지 이제는 제자리에있게됩니다.

4

당신이 뭘하려는 건지에 따라

[buttonObj sendActionsForControlEvents: UIControlEventTouchUpInside]; 
이 감동 된 것처럼 버튼을 트리거

과 행동이에 연결되어있는 어떤 힘을 할 수 있습니다.

참고 : 그 질문에 대한 답변입니다. this SO question.

+0

잘 모르겠지만 ... 이것은 [button performClick];과 유사하게 들리며, 이는 Mac 버튼에서 사용하고있는 것입니다. –

관련 문제