TIP-맥OS

macOS용 XCode 스토리보드 프로젝트 XIB프로젝트로 변경하기

무한열정 2017. 6. 25. 22:46


Xcode > macOS > Cocoa Application을 선택하여

맥용 어플리케이션 프로젝트를 생성한다.


Create Document-Based Application에 언체크하여 도큐멘트베이스드 어플리케이션으로 만들지 않는다.

User Core Data를 언체크한다.


맥용 어플리케이션을 생성 하면 다음과 같이 스토리보드용 어플리케이션이 생성된다.

자~ 이제부터 이걸 XIB방식으로 변경해보자. 


사용하지 않을거니 Main.storyboard파일을 삭제한다.


Main.storyboard에서 사용하는 ViewControler.swift는 사용하지 않으니 삭제한다. 


그룹에 오른클릭하여 New File ...을 선택한다.


메인메뉴 XIB를 만들어야 하는데 템플릿이 이미 있으니 활용하자.

macOS > User Interface > Main Menu 선택한다.


MainMenu.xib가 생성이 되었으면

우측하단 Object를 찾아서 Object하위에 하나더 올린다.


다음과 같이 생성되어 추가된걸 확인할수 있다.


* 이부분이 아주 중요하다.

추가한 Object의 이름을 변경하고 

우측탭에서 Identity Inspector탭을 선택하고

Class 항목에 AppDelegate를 지정한다.

Main Menu가 뜨고 기반 클래스가 AppDelegate이므로 

Xcode의 기본이 되는 AppDelegate가 무난히 구동된다.


File's Owner에 우클릭하고 delegate항목을 방금 추가한 Delegate와 연결하여 준다.

* 이부분도 아주 중요하다. ^^


Main Menu를 사용하기 위해 

Project명을 선택하고 중앙의 General탭 > Main Interface > MainMenu.xib를 선택한다.


Main.stroyboard를 삭제 했기 때문에 기본적으로 보여줄 WindowControler를 추가해야 한다.

New File ... > macOS 탭 > Source > Cocoa Class를 선택한다.


Class 명으로 ChatWindowController로하고

Subclass of에 상속해야할 NSWindowController로 지정한다. 

Also create XIB file for user interface에 체크하여

클래스파일과 더블어 UI를 위한 XIB도 같이 생성되도록 한다.


ChatWindowController.xib를 선택하여

적당히 보여줄 UI를 생성해 본다.


AppDelegate에 약간의 코드가 추가되어야 한다.

ChatWindowController UI를 띄우기 위한 코드이다.


var windowControllers: [ChatWindowController] = []


// MARK: - Actions

@IBAction func displayNewWindow(_ sender: NSMenuItem) {

    addWindowController()

}

    

    

// MARK: - Helpers

func addWindowController() {

    NSLog("addWindowController")

    let windowController = ChatWindowController()

    windowController.showWindow(self)

    windowControllers.append(windowController)

}

다음과 같은 코드를 추가한다.


* 다음 윈도우가 뜨면 성공한 것이다. ^_^


Chatter.zip



Chatter.zip
0.03MB