2014-11-20 5 views
0

나는 새로운 종류의 일종이지만 신속하게 '붙어'입니다. swift를 사용하여 메인 창 시작하기

나는 등 C, 자바, C++, PHP를 알고

...

나는 빠른 사용하여, 멀티 윈도우 응용 프로그램 (코코아를 사용하여 맥 OS 응용 프로그램)을 구성하기 위해 노력하고있어. 나는 이미 그것을 할 수 있지만 내 문제는 내가 메인 창을 닫을 때이다. 메인 윈도우를 닫으면 아이를 추가하려고 할 때 오류가 발생하거나 새 창이 열리지 않습니다.

class SmallWindow: NSViewController { 

    @IBOutlet var window: NSWindow! //Window inside the .xib file 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do view setup here. 
    } 

} 

가 이미 NSWindowControllerNSWindow를 사용하여 위의 시도 :

나는이 있습니다.

var smallwin = SmallWindow() 
smallwin.window.makeKeyAndOrderFront(self) 
//already tried with smallwin.window too 

프로그래밍 방식으로 새 창을 시작하는 방법에 대해 궁금합니다. 몇 가지 단계가 빠졌습니까?

@IBOutlet var window: NSWindow! 
@IBOutlet var smallwin : SmallWindow! 

func applicationDidFinishLaunching(aNotification: NSNotification) { 

    smallwin = SmallWindow() 
    window.addChildWindow(smallwin.window, ordered: NSWindowOrderingMode.Above) 

} 
+0

닫은 상태에서이 창을 해제하지 않도록 설정했는지 확인하십시오. – matt

+0

과 'this'는 메인 윈도우를 의미합니까? – Leandroc

+0

네, 그냥 생각 일 뿐이지 만, 나는 실수를했고 창을 닫을 때 창을 없애 버렸습니다. - 그러나, 나는 당신이 "아이를 그것에 덧붙이시오"는 의미를 이해하지 못합니다; 닫힌 윈도우는 자식 윈도우를 가질 수 없습니다. – matt

답변

1

당신은 아마 아이 창을 필요가 없습니다. 방금 창문이 필요합니다.

가 화면에 새 창을 넣어, 당신은 세 가지를 수행해야합니다

  1. 는 프로그래밍 방식이나 펜촉을로드하여 창을 만듭니다.

  2. 주문 메시지를 창에 보냅니다. 보통 makeKeyAndOrderFront 또는 orderFront을 보내고 자합니다. “Opening and Closing Windows” in the Window Programming Guide을 참조하십시오.

  3. 창을 참조하십시오. 시스템이 반드시 화면 창에 대한 강력한 참조를 유지하지는 않습니다. 창이 할당 해제되면 화면에서 자신을 제거합니다.

+0

내 xCode에 문제가 있다고 생각합니다 ... 내 컴퓨터에서 똑같은 코드를 사용했는데 마치 마법처럼 작동했습니다. – Leandroc

관련 문제