키보드 중심의 응용 프로그램에서 작업합니다. 키보드에서 양손으로. 마우스에 손을 대지 마십시오.popUpContextMenu에서 첫 번째 항목 선택
사용자는 키보드를 통해 상황에 맞는 메뉴를 팝업으로 표시하고 항목을 선택한 다음 Enter 키를 눌러 입력 할 수 있습니다.
[NSMenu popUpContextMenu]
은 항목을 강조 표시하지 않고 메뉴를 표시합니다. 사용자는 첫 번째 항목을 강조 표시하기 위해 arrow_down을 한 번 눌러야합니다.
친구가 내게이 메뉴를 사용할 때마다 arrow_down을 눌러야한다는 것을 알았고 은이 단계를 제거한다고 제안 했으므로 메뉴가 팝업 될 때 첫 번째 항목이 항상 강조 표시됩니다.
탄소 해킹이 필요하다고 생각하십니까?
프로그래밍 방식으로 첫 번째 항목을 강조 표시하려면 어떻게해야합니까?
이 코드를 사용하여 메뉴를 팝업합니다.
NSEvent* event = [NSEvent otherEventWithType:NSApplicationDefined
location:location
modifierFlags:0
timestamp:0
windowNumber:[[self window] windowNumber]
context:[[self window] graphicsContext]
subtype:100
data1:0
data2:0
];
[NSMenu popUpContextMenu:menu withEvent:event forView:self];
업데이트 : 메뉴가 표시 될 때 나는 그러나 이벤트가 실행되지 않고, 바로 popUpContextMenu 후 내 응용 프로그램 arrow_down 이벤트를 보내는 노력했다. (이벤트는 메뉴가 사라진 후에 실행됩니다.)
unichar code = NSDownArrowFunctionKey;
NSString* chars = [NSString stringWithFormat: @"%C", code];
NSEvent* event = [NSEvent keyEventWithType:NSKeyDown location:location modifierFlags:0 timestamp:0 windowNumber:[[self window] windowNumber] context:[[self window] graphicsContext] characters:chars charactersIgnoringModifiers:chars isARepeat:NO keyCode:code];
[NSApp sendEvent:event];