tokoromのその他の日記
- vim関連: vimまっしぐら★
- それ以外: 寄り道ばかりの お勉強日記★
2011-11-27
MacアプリでもUIKitを使ってみる with Chameleon
UIKit | |
Chameleon
Chameleon - UIKit for Mac development
このChameleonを使うとMacアプリの開発でもUIKitを使えるようになるとのこと。
前々から気になっていたので少し試してみた。
Chameleon自体はBigZaphod/Chameleon - GitHubからダウンロード可能。
また、Chameleonを試用した本記事のソースコード一式はtokorom/ChameleonUIKitDemo - GitHubからダウンロード可能。
今回は、UIViewControllerで画面を1つ作り、そこにUIImageViewやUIButtonを貼りつけて動かしてみるところまで実験。
まずはプロジェクトにChameleonを取り込む
※上記サイトからあらかじめChameleonをダウンロードしておくこと
まずはXcodeで空のMacアプリのプロジェクトを作成する。
そのプロジェクトにChameleonの中のUIKit.xcodeprojだけ追加する。
次に、Build PhasesのLink Binary With LibrariesにUIKit.frameworkを追加する。
↓このあたりの実施後の画面が↓になります↓
UIKitを他のコードから使えるようにimport
■ChameleonUIKitDemo-Prefix.pch
プロジェクトの中にはじめからあるプリコンパイル済みヘッダで、上記のように
UIKit/UIKit.h
UIKit/UIKitView.h
をimportしておく。
もちろん、各ソースコードから個別にimportしても構わない。
UIKit用のAppDelegateを作っておく
■ChameleonAppDelegate.h
■ChameleonAppDelegate.m
ここは普段のiOS用アプリ開発とほぼ同じでOK!
唯一違うのは、windowやViewControllerのautoresizingMaskを明示的に指定するコードを追加するくらい。
UIViewControllerがそのまま使えるというのは素晴らしい!
はじめに表示するRootViewControllerを作っておく
ここはiOS用アプリ開発と全く同じ!
ここではUIImageViewとUIButtonを追加している。
※必要な画像はあらかじめプロジェクトに追加しておくこと
■RootViewController.h
■RootViewController.m
Mac用のAppDelegateをUIKit用AppDelegateに接続
■AppDelegate.h
■AppDelegate.m
ここでは、UIKitViewと先ほど作成したChameleonAppDelegate(UIKit用のAppDelegate)を追加する。
UIKitViewは後ほどInterface Builderで接続するためIBOutletを付けておく。
そして、applicationDidFinishLaunchingの中で、UIKit用AppDelegateに移管するため、UIKitViewのインスタンスに対してlaunchApplicationWithDelegateをコールして引数にUIKit用AppDelegateのインスタンスを指定する。
Interface Builder で最後の仕上げ
最後に、Interface BuilderでMainMenu.xibを開き、WindowsのメインViewにUIKitViewを追加する。
UIKitViewというオブジェクトはツール上は存在しないので、代わりにCustom Viewというのを貼り付ける。
そして、そのClass名をUIKitViewに変更する。
※このあたりは↑のスクリーンキャプチャのとおりです
これができたら、そのUIKitViewをApp Delegateに作っておいたOutlet(chameleonView)に接続する。
以上で完了。
ビルド&ラン!
実行してみたところUIImageViewもUIButtonもきっちり動き、ボタン押下のアクションも問題なくハンドリングされていました。
なかなか面白いですね!
UIKit.frameworkをappの中に含める設定
なお、このままだとappとして出力した後にUIKit.frameworkが見つからなくて動作しなくなってしまう。
そのため、Builde PhasesにCopy Filesという項を追加し、そこにUIKit.frameworkを設定しておく必要がある。





iPhoneプログラミング UIKit詳解リファレンス
詳解 EZアプリ(BREW)プログラミング