2012-01-03 4 views
0

私はCocoaベースのMac OS Xプロジェクトに取り組んでいて、internationalize MainMenu.xibに関する1つの問題に直面しています。CocoaベースのMac OS Xアプリケーション用にinternationalize MainMenu.xibに直面する問題

メニュー項目では、すべてのタイトルをプログラムで国際化する必要があります。 「切り取り」、「コピー」、「貼り付け」などのすべてのメニュー項目は、取り消しややり直しのメニュー項目のタイトルを除くsetTitleを使用して国際化することができます。これに加えて、プロジェクトフォームのテキストフィールドに何かを入力した後、元に戻すメニュー項目のタイトルが「入力を元に戻す」に動的に変更されました。同じことが "やり直し"にも起こります。あるNSMenuItem "コピー" のための

私が使用して他のメニューとメニューアイテムタイトルのタイトルを設定することができ、同様にMainMenu.xib "編集" メニューとのため

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

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

「編集」メニューの下にあります。

しかし、私は、コードの同じ部分を使用する場合は、

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

のMenuItemタイトルはまだ

NSUndoManagerは方法undoMenuItemTitleとredoMenuItemTitleを提供していますが、NSUndoManagerは-setTitleを送信しない「元に戻す」として残ります:「元に戻す」と「やり直し」メニュー項目へのメッセージ。

タイトルの動的な変更を追跡し、その「入力を元に戻す」を国際化するにはどうすればよいですか?

MainMenu.xibのFirst Responderを手作業で取得し、undomanagerオブジェクトを取得することは可能ですか?私は現在、最初のレスポンダにアンドゥメニュー項目を使ってアンドゥ操作をアンバインドし、手動でアンドゥ操作を実行することができます。あるいは、これらをすべて実行せずにタイトルをプログラムで変更することもできます。

誰かがこの問題に遭遇して問題が解決した場合は教えてください。

答えて

関連する問題