2013-01-03 1 views
0

문제의 특정 메뉴에 속한 NSMenuItem에 할당 된 바로 가기 키를 누르면 응용 프로그램 "메뉴 강조 표시"를 비활성화하려고합니다.바로 가기 키를 누를 때 메뉴 강조 표시 사용 안 함

문제는 응용 프로그램에서 키보드를 꽤 많이 사용하고 메뉴를 항상 강조 표시하게 만드는 것이지만 약간의 짜증나는 일이지만 여전히 사용자에게 표시되는 메뉴 (바로 가기 포함)를 갖고 싶어합니다. 사용할 수있는 조치.

답변

0

사용자 지정 NSMenuItem 하위 클래스를 선언하고 NSMenuItem 대신 해당 사용자 지정 클래스를 사용하기 시작하십시오. 이 메뉴 항목이 없습니다이 방법이 강조

- (BOOL)isHighlighted 
{ 
    return NO; 
} 

:이 메소드를 오버라이드 (override)이 클래스에서

.

편집

이 시도 :

[item setOnStateImage: item.offStateImage]; 
+0

이는 어떤 이유로 작동하지 않습니다. isHighlighted 메서드는 결코 호출되지 않습니다. (코드 작업을보고 정상적으로 동작 하는지를보기 위해 isHidden을 구현하려고 시도했습니다.) –

+0

setOnStateImage를 실행하면 도움이되지 않았습니다. –

+0

그냥 똑같은 것을 말하고 싶습니다. 다음은 하이라이트입니다. https://dl.dropbox.com/u/5205843/menu_highlight.png (보기 메뉴의 항목으로 키를 누를 때 일어나는 현상입니다) –

0

FFR을 : 워드 프로세서에서 다음과 같은 방법을 찾기 :

- (BOOL)validateMenuItem:(NSMenuItem *)menuItem 

모두가 메뉴 항목을 선택하고 관련에 대해 작동합니다 명령 키. 당신의 NSDocument 내

은, 위의 선택기 highlight: 수 있습니다 validateMenuItem 같은 귀하의 경우에는

- (BOOL)validateMenuItem:(NSMenuItem *)menuItem 
{ 
    SEL theAction = [menuItem action]; 
    if (theAction == @selector(openPreferencesPanel:)) { 
     return !_isCurrentlyModal;     //A BOOL in MyDocument 
    } 
    return [super validateMenuItem:menuItem];   // Keep this for proper cut, paste, etc validation 
} 

로의 몸을 제공한다. nib/xib를 점검하고 점검하십시오. 첫 번째 응답자와 연결될 수 있습니다. 메소드 이름을 복사하십시오.

더 일반적인 항목 (버튼 등)에 대한 gander도 있고 메뉴 항목도 있습니다.

- (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)anItem