2010-05-30 13 views
0

Visual Studio 2008에서 개발 한 응용 프로그램을 Cocoa로 포팅했습니다. 저는 현재 Cocoa에 대해 'Learn-as-you-go'접근 방식을 사용하고 있습니다. 따라서 더 작고 간단한 프로젝트에서 다양한 아이디어와 기술을 시험해보고 결국 하나의 큰 응용 프로그램으로 결합 할 수 있습니다.멀티 윈도우 코코아 프로그램 만들기 - 절차 시작 제안?

내 프로그램 논리는 다음과 같습니다 (어렴풋을 나타냄). 내 상사가 목록의 항목을 위임 받아야합니다.

  1. 신청 시작 1a. CD 프로그램이 드라이브에 있는지 확인하십시오.
  2. 라이센스를 확인하십시오. 발견되면 유효하며 7 단계로 건너 뜁니다.
  3. 사용권 계약 표시.
  4. 일련 번호 프롬프트가 표시됩니다.
  5. 일련 번호를 확인하고 저장하십시오.
  6. 이전 창을 모두 숨 깁니다.
  7. 로드 메인 프로그램 창을

가 가장 좋은 건 이런 종류의 무엇을 할 것입니다 사용자의 요청이있을 때 중복 기본 응용 프로그램 창을

  • 종료 프로그램을 포함하여 기본 응용 프로그램 창에서
  • 차단 요청 및 명령 응용 프로그램? 내가 물었던 또 다른 질문에서 나는 복제와 상호 작용이 필요할 수도 있기 때문에 '주 응용 프로그램'창을 나머지 XIB 파일에 보관해야한다는 것을 알게되었습니다.

    나는 Cocoa와 Objective-C가 C를 기반으로하기 때문에 Main method가 어딘가 있다는 것을 알고있다. 그러나 여러분 모두는 이와 같은 응용 프로그램의 시작 장소로 무엇을 제안합니까?

  • +1

    질문의 마지막 부분은 일반적으로 응용 프로그램이 시작될 때 인스턴스화 될 YourappnameApplicatioDelegate 클래스가 있습니다. 여기에서 다른 클래스를 인스턴스화해야합니다. Obj-C에서 main 메소드를 거의 사용하지 않는다. 나머지는 모르겠지만 iPhone에서만 프로그래밍합니다. – Julien

    +0

    고맙습니다.이것은 나를 많이 도와야합니다. 더 나쁜 것은 더 나빠질 것입니다, 나는 'global'변수와 객체를 그곳에 배치 할 수 있습니다. –

    +0

    또한 주 * 방법 *이 없습니다. 객체에는 메서드가 있습니다. 메소드는 클래스 또는 클래스의 인스턴스의 일부로 만 존재합니다. main.m 파일은 클래스를 정의하지 않습니다. 'main' * 함수 만 포함합니다. 함수는 결코 객체의 일부가 아닙니다. 따라서 함수와 메소드는 서로 다른 두 가지입니다. –

    답변

    1

    이렇게 일부는 조직화됩니다. Julien이 언급했듯이 YouappnameApplicationDelegate 클래스가 필요합니다. 실제로 프로젝트를 만들 때 Xcode가이를 만들고 설정합니다.

    applicationDidFinishLaunching 메서드 (Xcode에서 제공 한 방법으로 구현되어야 함)를 구현하고 1 단계와 2 단계 (및 7, 8, 9 단계)에 대한 논리를 구현합니다.

    3 단계에서 5 단계까지는 다른 클래스에서 구현하고 싶을 것입니다. RegistrationWindowController, 또는 그와 비슷한 것. Xcode에서 제공하는 MainMenu.nib 파일이 아닌 다른 nib 파일에이 창을 생성 할 수도 있습니다. YouappnameApplicationDelegation의 applicationDidFinishLaunching 메소드에서이 펜촉을로드합니다 (아래 코드 샘플 참조). 그렇게하면 코드가 잘 정리되어 있습니다. 코코아가 실제로 가이드 할 수있는 코드입니다.

    좋아, 그래서 지금 새 펜촉 파일을로드하는 방법 :

    myInstanceVariable = [[RegistrationWindowController alloc] initWithWindowNibName: @"MyNibName"]; 
    [myInstanceVariable showWindow: self]; 
    

    RegistrationWindowController은 NSWindowController의 서브 클래스이어야한다.

    당신의 연구에 꽤 오래 걸릴 것입니다, 그것이 도움이되기를 바랍니다!

    +0

    고맙습니다! 지금은 RTF를 표시하고 읽기 전용으로 만들고, 일련 번호를 생성 및 확인하고, 창 내에서 비디오를 재생하는 등 각 구성 요소의 비트와 조각을 작업했습니다. 각 단계를 서로 독립적으로 개발하고 완료합니다. 나는이 모든 것들을 어떻게 함께 고착시켜야하는지에 관한 문제를 가지고 있었다. 라이언 고마워! :) –

    관련 문제