2012-01-03 2 views
0

나는 코코아 기반의 Mac OS X 프로젝트에서 일하고 있으며, MainizeMenu.xib를 인터내셔널 라이즈하는 문제를 안고있다.코코아 기반의 Mac OS X 응용 프로그램을위한 MainMenu.xib의 국제화에 직면

메뉴 항목에서 모든 제목은 프로그래밍 방식으로 국제화해야합니다. "잘라 내기", "복사", "붙여 넣기"와 같은 모든 메뉴 항목은 실행 취소 및 다시 실행 메뉴 항목 제목을 제외하고 setTitle을 사용하여 국제화 될 수 있습니다. 이것에 추가하여 프로젝트 양식의 텍스트 필드에 아무 것도 입력하지 않고 실행 취소 메뉴 항목 제목이 "입력 취소"로 동적으로 변경되었습니다. "재실행"에서도 마찬가지입니다. 이다 NSMenuItem "복사"에 대한

내가 사용하여 다른 메뉴와 메뉴 아이템 '제목의 제목을 설정할 수 있습니다 유사 MainMenu.xib "편집"메뉴에 대한

[[[[NSApp mainMenu] itemAtIndex:1] submenu]setTitle:@"Edit_Test"] 

,

[[[[[NSApp mainMenu] itemAtIndex:1] submenu]itemAtIndex:4]setTitle:@"Copy_Test"] 

에서 "편집"메뉴를 선택하십시오.

하지만 MenuItem과 제목이 여전히으로 남아

[[[[[NSApp mainMenu] itemAtIndex:1] submenu]itemAtIndex:0]setTitle:@"Undo_Test"] 

동일한 코드 조각을 사용하는 경우

NSUndoManager이 방법 undoMenuItemTitle 및 redoMenuItemTitle을 제공한다 "취소"하지만 NSUndoManager는 -setTitle 전송하지 않습니다 : "실행 취소"및 "다시 실행"메뉴 항목에 대한 메시지.

제목의 동적 변경 사항을 추적하고 "입력 취소"를 어떻게 국제화 할 수 있습니까?

수동으로 MainMenu.xib의 First responder를 가져올 수 있으며 undomanager 개체를 가져올 수 있습니까? 그래서 내가 현재 실행 취소 작업을 수동으로 실행 취소 또는 수행 할 수있는 실행 취소 메뉴 항목을 사용하여 첫 번째 응답자의 바인딩을 해제 할 수 또는 이러한 모든 작업을 수행하지 않고 프로그래밍 방식으로 제목을 변경할 수 있습니다.

아무도이 문제를 발견하고 문제를 해결했는지 알려 주시기 바랍니다.

답변