2011-03-13 5 views

답변

0

나는 그것을 마침내 발견했습니다. 문제는 내 문서 기반 응용 프로그램의 모든 창에 경계선이없는 것입니다. 최근 테두리없는 창은 메뉴 항목 (또는 Cmd-W 키)이 firstResponder에 보내는 performClose: 메서드를 통해 닫히지 않습니다.

- (void)performClose:(id)sender { 
    [documentClass canCloseDocumentWithDelegate:self shouldCloseSelector:@selector(document:shouldClose:contextInfo:) contextInfo:NULL]; 
} 

- (void)document:(NSDocument*)doc shouldClose:(BOOL)shouldClose contextInfo:(void*)contextInfo { 
    if (shouldClose) 
     [doc close]; 
} 

- (BOOL)validateMenuItem:(NSMenuItem *)menuItem { 
    return ([menuItem action][email protected](performClose:))?YES:[super validateMenuItem:menuItem]; 
} 

- (BOOL)canBecomeMainWindow { 
    return YES; 
} 

- (BOOL)canBecomeKeyWindow { 
    return YES; 
} 

마지막 두 방법은 윈도우가 포커스를 얻을 수 있는지 확인하고 다른 기능 (textviews의 찾기 명령 등)을 실행 할 수있다 : 그래서 윈도우의 서브 클래스에서 몇 가지 추가 메소드를 구현했다.

0

언제든지 Close 메뉴 항목이 "첫 번째 응답자"개체 (NSWindow가되는)에 -performClose : 메서드를 보내지 않을 수 있습니까? 과거에는 메뉴 항목에 액션 타겟이 없으면 회색으로 표시됩니다.

관련 문제