2014-12-26 2 views
1

질문의 제목에 실제로 모두 나와 있습니다. 나는 OS X SpriteKit 게임에 버튼과 다른 컨트롤과 같은 AppKit 요소를 연결하려고합니다. AppKit 요소는 SKScenes 위에 놓을 수 있지만, 어떻게 작동합니까? 이것이 NSView를 통해 처리 될 수 있습니까? 레이어가 SpriteKit에서 어떻게 생성 될 것입니까? 아니면이 별도의 프로세스입니까?SpriteKit 게임에서 AppKit 요소 만들기

답변

0

모든 AppKit의 UI 요소 NSResponder에의 서브 클래스이며, 대부분의 NSView의

이 다른 코코아 응용 프로그램과 같은 의미의 서브 클래스, 당신은 매우 거의 같은 리스폰 더 체인을 가지고있다.

SpriteKit은 SKNode를 기반으로 NSResponder 하위 클래스를 추가하며 모두 SKView에 있습니다.

하나의 창에서 함께 모든 것이 응답자 체인에서 동일한 창을 갖습니다. 컨트롤과 뷰가 별도의 창이나 메뉴 막대의 메뉴에 있더라도 모든 것이 응답 체인을 공유합니다. NSApplication에 어떤 수준.

정말로 원하는 것은 최상의 사용자 환경을 결정하는 것입니다. 그러나 NSResponder의 하위 클래스는 메시지를 체인 위로 전달할 수 있습니다. 해당 메시지가 체인에서 처리되는 한 작동합니다.

이렇게하면 앱 대리인이나 창 컨트롤러 또는보기 컨트롤러에 IBAction 메서드를 설정하고 해당 메서드 선택기를 컨트롤의 동작으로 할당 할 수 있습니다. 응답자 체인과 무 타겟 메시징 (nil-targeted messaging)은 코코아에서 Objective-C의 본질에 의해 가능해진 가장 기초적이고 강력한 디자인 패턴 중 일부입니다. 응답자 체인에서 Apple 문서를 사용하여 시간을 보내십시오. 그런 다음 버튼이나 슬라이더만으로 간단한 앱을 생각해보십시오. 게임에도 똑같이 적용하십시오.

+0

미안하지만, 나는 이것에 관해서 멍청하다. 나는이 개념을 높은 수준에서 이해하지만 코드 수준에서는 이해하지 못합니다. 예를 들어 NSButton을 간단하게 만들 수 없으며 SKScene에 어린이로 추가 할 수 있습니까? 코드 예제가 매우 도움이 될 것입니다. – 02fentym

+0

아니요. SKNode 만 SKNode의 하위 항목이 될 수 있습니다. Skscene은 SKNode입니다. SKView는 SKNodes에 대해 조금 알고있는 특별한 NSView 하위 클래스입니다. 보기 내부에 항상보기를 배치 할 수 있습니다. – uchuugaka

+0

그래, 그게 내가 생각했던거야. 프로그래밍 방식으로 SKView 내부에 뷰 (NSView?)를 배치하는 방법은 무엇입니까? – 02fentym