2012-06-28 6 views
0

didEndSelector가 호출되지 않는 이유를 알 수 없습니다. 어떤 아이디어?내 NSAlert의 didEndSelector가 호출되지 않는 이유는 무엇입니까?

- (void) showMonitorAlertIfNeeded { 

    if (! self.monitorAlert && [self isHideMonitorAlert]) { 

     self.monitorAlert = [MMAlertController monitorAlert]; 

     [[self.monitorAlert window] setTitle: [self applicationName]]; 

     [self.monitorAlert beginSheetModalForWindow: [NSApp keyWindow] 
            modalDelegate: self 
            didEndSelector: @selector(monitorAlertDidEnd:returnCode:contextInfo:) 
             contextInfo: nil]; 


     [[self.monitorAlert window] setLevel: NSScreenSaverWindowLevel]; 

    } 
} 


- (void) monitorAlertDidEnd: (NSAlert *) alert returnCode: (NSInteger) code contextInfo: (id) contextInfo { 

    switch (code) { 
     case NSAlertFirstButtonReturn:{ 
     } 
      NSLog(@"FIRST BUTTON PRESSED"); 
      break; 

     case NSAlertSecondButtonReturn:{ // don't show again. 
      NSLog(@"SECOND BUTTON PRESSED"); 
      [[NSApp delegate]setIsHideMonitorAlert:NO]; 
     } 

     break; 

     default: 
      break; 
    } 
} 
+0

스위치 외부에서 NSLog를 사용해 보셨나요? – paulmelnikow

+0

흠, 그냥 실제로 해봤 어. 그것은 왜, 내 스위치 진술을 호출하지 않는 어떤 아이디어라고? – arooo

답변

1

시도는 스위치 전에이 줄을 삽입합니다 :

NSLog(@"code: %ld", code); 
+0

이미 삭제했는데 영향을 미치지 않습니다. – arooo

+0

code 매개 변수에서받은 값을 기록 했습니까? –

+0

첫 번째로 누른 버튼과 두 번째로 누른 버튼이 기록되지 않습니다. 내가 스위치 문 밖에서 그것을 넣으면된다. – arooo

3

[MMAlertController monitorAlert]하면 반환 다음 스위치가 실제로 NSAlertDefaultReturnNSAlertAlternateReturn를 포함해야 alertWithMessageText:defaultButton:alternateButton:otherButton:informativeTextW‌​ithFormat:로 생성 된 NSAlert을. (다른 방법으로 만들어진 경우 원래의 switch 값이 맞습니다.)