2012-04-30 3 views
0

NSLog(@"ss") 실행. 이벤트가 실행되지 않는 이유는 무엇입니까?코코아 : 왜 이벤트가 실행되고 있지 않습니까?

-(void)mouseUp:(NSEvent *)theEvent{ 
    switch (self.tag) { 
     case 3: 
      NSLog(@"ss"); 
      [self setAction:@selector(openurl:)]; 
      break; 
     default: 
      break; 
    } 
} 

- (IBAction)openurl:(id)sender { 
    [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://www.google.com/"]]; 
} 

답변

1

코드가 작업을 설정하고 있지만 보내지 않습니다. 액션을 설정하면 무언가가 발생할 때 보낼 액션을 컨트롤에 알려줍니다. 또한 -mouseUp:을 재정의하는 것처럼 보이기 때문에 마우스 업에 대한 컨트롤의 일반 이벤트 처리가 발생하지 않으며 작업을 보내지 못할 수도 있습니다.

+0

이벤트 내에서 mouseUp에서 설정할 수 없습니까? –

+0

어떻게하면됩니까? '[button setAction : @selector (openWeibo :)];'구현이 아닙니다. –

+0

일반적으로 이벤트 처리기 내에서 컨트롤에 대한 동작을 설정하지 않아도됩니다. .xib를 사용한다면 거기에 설정하십시오. 프로그래밍 방식으로 컨트롤을 만드는 경우 컨트롤을 만들 때 컨트롤에 대한 동작을 설정하십시오. – Caleb

관련 문제