第一個Mac OS X專案(純程式碼)
本文作為快速建立專案入門,細節不做闡述,請自行探索
Mac OS X 的座標系不同於IOS
IOS 原點在螢幕左上角
Mac OS X 原點在左下角
Mac alloc init 一個viewcontroll 不會自動建立view
IOS 會自動建立view
所以Mac OS 的 ViewController
都需要實現loadView 方法
初始化view
建立專案
啟動 Xcode
選擇 建立新專案
頂部 選擇macOS
Application 下 選擇 cooca App
點選next
取消勾選Use Storyboards
點選next
既然是純程式碼開發
那麼移除目錄中所有.xib檔案
也就是把所有.xib結尾的都刪掉
同時info.plist 移除對應的key
完成專案建立
編寫程式碼
編輯main.m
#import <Cocoa/Cocoa.h>
#import "AppDelegate.h"
int main(int argc, const char * argv[]) {
NSApplication *app = [NSApplication sharedApplication];
id delegate = [[AppDelegate alloc] init];
app.delegate = delegate;
return NSApplicationMain(argc, argv);
}
編輯appDelegate.m
#import "AppDelegate.h"
@interface AppDelegate ()
@property (nonatomic, strong) NSWindow *window;
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
//視窗 關閉,縮小,放大等功能,根據需求自行組合
NSUInteger style = NSWindowStyleMaskTitled | NSWindowStyleMaskClosable |NSWindowStyleMaskMiniaturizable | NSWindowStyleMaskResizable;
float w = [[NSScreen mainScreen] frame].size.width/2;
float h = [[NSScreen mainScreen] frame].size.height/2;
self.window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, w, h) styleMask:style backing:NSBackingStoreBuffered defer:YES];
self.window.title = @"hello";
[self.window makeKeyAndOrderFront:self];
[self.window center];
}
- (void)applicationWillTerminate:(NSNotification *)aNotification {
// Insert code here to tear down your application
}
@end
建立第一個ViewController
快捷鍵commad+n
編輯HomeViewController
#import "HomeViewController.h"
@interface HomeViewController ()
@end
@implementation HomeViewController
- (void)loadView{
NSRect frame = [[[NSApplication sharedApplication] mainWindow] frame];
self.view = [[NSView alloc] initWithFrame:frame];
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do view setup here.
//do like ios
NSButton *button = [[NSButton alloc] initWithFrame:NSMakeRect(0, 0, 100, 100)];
[button setTitle:@"button"];
[self.view addSubview:button];
}
@end
再次編輯appdelete.m
#import "AppDelegate.h"
#import "HomeViewController.h"
@interface AppDelegate ()
@property (nonatomic, strong) NSWindow *window;
@property (nonatomic, strong) HomeViewController *homeVC;
@end
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
//
NSUInteger style = NSWindowStyleMaskTitled | NSWindowStyleMaskClosable |NSWindowStyleMaskMiniaturizable | NSWindowStyleMaskResizable;
float w = [[NSScreen mainScreen] frame].size.width/2;
float h = [[NSScreen mainScreen] frame].size.height/2;
self.window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, w, h) styleMask:style backing:NSBackingStoreBuffered defer:YES];
self.window.title = @"hello";
[self.window makeKeyAndOrderFront:nil];
[self.window center];
self.homeVC = [[HomeViewController alloc] init];
[self.window setContentViewController:self.homeVC];
}
- (void)applicationWillTerminate:(NSNotification *)aNotification {
// Insert code here to tear down your application
}
@end
執行一下,看看效果吧
更多功能自行探索
你會成長很多
相關文章
- Mac OS XMac
- MAC OS X下建立iso檔案Mac
- Flutter 建立第一個專案 for macFlutterMac
- 提高 Mac OS X 速度的 52 個方法Mac
- mac 純程式碼建立tableviewMacView
- Mac OS X 顯示和隱藏檔案Mac
- Maven Install on Mac OS XMavenMac
- Vmware玩mac os x分享Mac
- [Mac OS X] 如何在終端檢視 Mac OS 版本資訊Mac
- MAC OS X系統顯示和隱藏檔案Mac
- Mac OS X 清除DNS快取MacDNS快取
- Mac OS X下如何使用OpenGLMac
- Mac OS X 背後的故事Mac
- 如何利用Mac OS X內建工具生成強密碼Mac密碼
- mac os x10.9.2 檢視程式對應埠Mac
- 我用Xcode +python寫的第一個OS X appXCodePythonAPP
- Mac OS X 避免產生臨時檔案 .DS_StoreMac
- Windows、Linux、Unix、Mac OS X系統哪個更好用?WindowsLinuxMac
- Mac OS X 下搭建thrift環境Mac
- mac os x 啟用apache 和 phpMacApachePHP
- Mac OS X 上用 otool 代替 lddMac
- Mac OS X常用軟體介紹Mac
- 程式設計第一個Apple Watch程式建立專案程式設計APP
- Windows下虛擬機器安裝Mac OS X ----- VM12安裝Mac OS X 10.11Windows虛擬機Mac
- Mac OS X中MacPorts安裝和使用Mac
- MAC OS X系統目錄結構Mac
- 在Mac OS X中配置Apache + PHP + MySQLMacApachePHPMySql
- Mac OS X is not supported with software virtualization解決方法Mac
- Mac OS X 10.2 快速關機(轉)Mac
- Mac OS X 10.2 的按鍵(轉)Mac
- Django建立第一個專案Django
- 建立第一個django專案Django
- 第一個reactnative專案React
- 編寫高質量iOS與OS X程式碼的52個有效方法(一)iOS
- 編寫高質量iOS與OS X程式碼的52個有效方法(五)iOS
- 編寫高質量iOS與OS X程式碼的52個有效方法(二)iOS
- 解決Mac OS X檔案系統大小寫不敏感問題Mac
- 蘋果釋出Mac OS X補丁 修復17個安全漏洞蘋果Mac