2012-04-30 7 views
0

NSLog(@"ss") execution.Whyイベントが実行されていないのですか?cocoa:なぜイベントが実行されていないのですか?

-(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

関連する問題