2015-01-12 2 views
2

저는 주로 iOS에서 디버깅을하고있는 cocos2d-x 응용 프로그램을 가지고 있습니다. 이제는 OS X 측면에서 작업하고 있습니다. 내 iOS 앱에서 몇 가지 제스처 명령을 가지고 그 OS X의에 번역하지 않는 것을 제외하고Cocos2d-x OS X 응용 프로그램 메뉴

예상대로

이 모든 것이, 거의 동일하게 작동

나는 메뉴 항목 (OS X의 수준)을 만들 싶습니다 연관된 바로 가기를 사용하여 제스처 상호 작용 중 일부를 수행 할 수 있습니다 (적어도 하나의 옵션으로).

MainMenu.xib를 만들고 프로젝트 설정에서 연결하는 것이 전체적인 이야기는 아닌 것 같습니다. 메뉴는 여전히 일반 "AppName"및 Window 메뉴이며 xib 파일에서 만든 메뉴가 아닙니다.

필자는 AppDelegate에 어떻게 든 연결해야한다고 생각하지만, 어떻게 확신 할 수 없으며, 적어도 Cocos2d와 어떻게 상호 작용하는지에 관해서는 그 효과에 대한 문서를 찾는 데 성공하지 못했습니다. 엑스.

답변

3

기본적으로 AppDelegate.cpp 또는 다른 곳에서 호출하는 Objective-C++ 클래스로 메뉴를 만들어야합니다. objective-c 컴파일러/런타임을 호출하기 위해 확장은 .mm입니다. 그런 다음 전체 메뉴 세트를 NSMenu을 만들고 항목을 추가하거나 교체 할 수 있습니다 [ServiceMenu/WindowMenu/MAINMENU]

NSMenu 참조 :

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSMenu_Class/index.html)

내가 유일하게 흥미로운 부분은 메뉴에서 액션을받는 것을 발견했다 어디 수신자 (목표)로서 objective-c 클래스를 생성해야한다고 생각합니다.

하나의 GLFW3을 대체하기 위해 완전히 새로운 메뉴로 .xib 파일을로드 할 수 있어야하지만, 아직 살펴 보지 않았습니다.

업데이트 : 다음은 프로젝트 예입니다.

https://github.com/stevetranby/TestNSMenuCocos2Dx

업데이트 : .xib

로 메뉴를로드하기 위해 투사 추가 예제
관련 문제