the minimal objc window

8-17 683 views

// clang -framework Cocoa main.m -o app && ./app
#import <Cocoa/Cocoa.h>

@interface AppDelegate : NSObject <NSApplicationDelegate>

@end

@implementation AppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)notification {
    NSLog(@"applicationDidFinishLaunching");

    [NSApp activateIgnoringOtherApps:YES];

    NSWindow *window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 500, 500)  
    styleMask:NSWindowStyleMaskTitled|NSWindowStyleMaskClosable|NSWindowStyleMaskMiniaturizable
    backing:NSBackingStoreBuffered defer:NO];

    [window setTitle:@"My Window"]; 

    // show window
    [window makeKeyAndOrderFront:nil];
}

@end

int main(int argc, const char * argv[]) {
  @autoreleasepool {

    AppDelegate *appDelegate = [[AppDelegate alloc] init];

    [NSApplication sharedApplication];
    // display at dock
    [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular];
    [NSApp setDelegate:appDelegate];
    [NSApp run];
  }
  return 0;
}

Undefined symbols for architecture x86_64

添加 -framework Cocoa 就行了 Undefined symbols for architecture x86_64: "_CGContextFillRect", referenced from:

阅读全文

欢迎留言