프로그래밍/objective-C

Cocoa Programming Objective-C Xcode 8.3.2 에서 스토리보드(Storyboard) 삭제하기

ksyoon 2017. 6. 6. 15:24

Cocoa Programming을 공부하는 입장에서 Xcode에서는 스토리보드(Storyboad)를 쓰는 것이 대세 인것 같다.

하지만 하위 호환성을 위해 Xcode 8.x 에서 스토리보드를 사용하지 않는 방법을 공유하고자 한다.

Xcode 8.x에서는 스토리보드를 기본적으로 만들게 되어 있다.

일단 프로젝트를 열고

1. 스토리 보드 파일을 삭제한다.




2. info.plist 파일에서 NSMainStoryBoardFile을 Main nib file base name으로 변경하고 Value를 MainMenu로 한다.



3.  AppDelegate.m 파일에

#import "AppDelegate.h"

@interface AppDelegate ()

@property (weak) IBOutlet NSWindow *window;
@end

@implementation AppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    // Insert code here to initialize your application
}


- (void)applicationWillTerminate:(NSNotification *)aNotification {
    // Insert code here to tear down your application
}

@end

과 같이 @property (weak) IBOutlet NSWindow *window; 을 추가한다.


4. File - New - File 에서 Application을 추가한다. 이름은 MainMenu


5. Delegate 추가
오른쪽 하단에서 Object 를 추가하고 Class 이름을 Delegate라고 한다.


Delegate 컨트롤러에서 control 키를 누른 상태에서 윈도우로 끌어 당겨 window Oultet과 윈도우를 연결 시킨다.

6. File Owner와 Delegate 연결

File Owner를 클릭하고 Binding Inspector를 선택하고  delegate를  Deleate Controller와 연결한다.



참고)  Xcode7에서는 메뉴가 상단에 붙어 있는데, Xcode8에서는 메뉴가 둥둥 떠 다니는 차이가 있다.

메뉴에서 NewApplication 를 바꾸려면 Info.plist의 파일에서
NewApplication를 원하는 이름으로 바꾼다.