第1章 Cocoaの概要
Cocoaの歴史
ツール
言語
オブジェクト、クラス、メソッド、およびメッセージ
フレームワーク
本書の読み方
表記規則
よくある間違い
学習に対する心構え
第2章 はじめましょう
Xcode
Interface Builder
Objective-Cについて
参考資料
この章で行ったこと
アプリケーションの時系列
第3章 OBJECTIVE-C
インスタンスの作成と使用
既存のクラスの使用
独自のクラスの作成
デバッガ
この章で行ったこと
静的アナライザについて
もっと詳しく:メッセージングの仕組み
課題
第4章 メモリ管理
非自動参照カウントを使用する
アクセサメソッド
ARCを使用する
第5章 ターゲット/アクション
NSControlでよく使われるサブクラス
サンプルのSpeakLineアプリケーションの作成
XIBファイルのレイアウト
SpeakLineAppDelegateクラスの実装
もっと詳しく:プログラムによるターゲットの設定
課題
デバッグのヒント
第6章 ヘルパーオブジェクト
委譲
NSTableViewとそのdataSource
ユーザーインターフェースのレイアウト
接続の作成
SpeakLineAppDelegate.mの編集
もっと詳しく:委譲の仕組み
課題:委譲の作成
課題:データソースの作成
第7章 キーバリューコーディングとキーバリューオブザービング
キーバリューコーディング
バインディング
キーバリューオブザービング
キーを監視可能にする
プロパティ
もっと詳しく:キーパス
もっと詳しく:キーバリューオブザービング
第8章 NSARRAY CONTROLLER
RaiseManアプリケーションの作成に着手する
キーバリューコーディングとnil
並べ替えの追加
もっと詳しく:NSArrayControllerを使用しない並べ替え
課題1
課題2
第9章 NSUNDO MANAGER
NSInvocation
NSUndoManagerの仕組み
RaiseManにアンドゥ機能を追加する
キーバリューオブザービング
編集のアンドゥ
新しい従業員の追加と同時に編集を開始する
もっと詳しく:ウィンドウとアンドゥマネージャ
第10章 アーカイブ化
NSCoderとNSCoding
ドキュメントアーキテクチャ
保存とNSKeyedArchiver
読み込みとNSKeyedUnarchiver
もっと詳しく:無限にループしない理由
もっと詳しく:プロトコルの作成
もっと詳しく:ドキュメントの自動保存
もっと詳しく:アンドゥの必要がないドキュメントベースのアプリケーション
ユニバーサルタイプ識別子(UTI)
第11章 CORE DATAの基礎
NSManagedObjectModel
インターフェース
もっと詳しく:ビューベースとセルベースのテーブルビューの違い
課題
第12章 NIBファイルとNSWINDOW CONTROLLER
NSPanel
アプリケーションにパネルを追加する
もっと詳しく:NSBundle
課題
第13章 ユーザーデフォルト
NSDictionaryとNSMutableDictionary
NSUserDefaults
デフォルトの設定
ユーザーによるデフォルトの編集を許可する
デフォルトの使用
もっと詳しく:NSUserDefaultsController
もっと詳しく:デフォルトをコマンドラインから読み書きする
課題
第14章 通知の使用
通知は何か
通知にできないこと
NSNotification
NSNotificationCenter
通知のポスト
オブザーバの登録
通知が発生した場合の処理
userInfoディクショナリ
もっと詳しく:委譲と通知
課題
第15章 アラートパネル
削除確認を行う
課題
第16章 ローカライズ
NIBファイルのローカライズ
文字列テーブル
文字列テーブルの作成
もっと詳しく:ibtool
もっと詳しく:フォーマット文字列でトークンの順序を明示的に指定する
第17章 カスタムビュー
ビューの階層
ビューに自身を描画させる
NSBezierPathによる描画
NSScrollView
プログラムによるビューの作成
もっと詳しく:セル
もっと詳しく:isFlipped
第18章 イメージとマウスイベント
NSResponder
NSEvent
マウスイベントの取得
NSOpenPanelの使用
ビューへのイメージの合成
ビューの座標系
オートスクロール
もっと詳しく:NSImage
課題
第19章 キーボードイベント
NSResponder
NSEvent
カスタムビューを用いた新規プロジェクトの生成
もっと詳しく:ロールオーバー
ぼんやりとした青の枠囲み
第20章 属性付きテキストの描画
NSFont
NSAttributedString
文字列および属性付き文字列の描画
文字の表示
ビューを取得してPDFデータを生成する
もっと詳しく:NSFontManager
課題1
課題2
第21章 ペーストボードとNILターゲットアクション
NSPasteboard
BigLetterViewにカット、コピー、ペーストを追加する
nilターゲットアクション
もっと詳しく:アクションメッセージを送信しているのはどのオブジェクトか?
もっと詳しく:UTIとペーストボード
もっと詳しく:遅延コピー
課題1
課題2
第22章 カテゴリ
NSStringにメソッドを追加する
もっと詳しく:プライベートメソッドの宣言
第23章 ドラッグ&ドロップ
BigLetterViewをドラッグ元にする
BigLetterViewをドラッグ先にする
もっと詳しく:操作マスク
第24章 NSTIMER
インターフェースのレイアウト
接続を行う
TutorControllerにコードを追加する
もっと詳しく:NSRunLoop
課題
第25章 シート
シートの追加
もっと詳しく:contextinfo
もっと詳しく:モーダルウィンドウ
第26章 NSFORMATTERの作成
基本的なフォーマッタ
NSControlクラスの委譲
部分文字列の確認
属性付き文字列を返すフォーマッタ
もっと詳しく:NSValueTransformer
第27章 印刷
改ページの処理
もっと詳しく:描画先は画面ですか?
課題
第28章 Webサービス
RanchForecastプロジェクト
URLを開く
課題:WebViewを追加する
第29章 ブロック
ブロックの構文
課題:委譲を設計する
第30章 iOS向けの開発
RanchForecastのiOSへの移植
RootViewController
ナビゲーションコントローラの追加
ScheduleViewController
UITableViewController
ビューコントローラのブッシュ
第31章 ビューのスワップ
はじめに
MyDocumentへのビュースワップの追加
ウィンドウのサイズ変更
第32章 CORE DATAのリレーションシップ
モデルの編集
カスタムNSManagedObjectクラスの作成
インターフェースのレイアウト
イベントとnextResponder
第33章 CORE ANIMATION
Scattered
暗黙的なアニメーションとアクション
課題1
課題2
第34章 同時実行
マルチスレッド化
Scatteredの改良:Instrumentsでのタイムプロファイリング
NSOperationQueue
もっと詳しく:より高速なScattered
課題
第35章 COCOAとOPENGL
簡単なCocoa/OpenGLアプリケーション
第36章 NSTASK
ZIPspector
課題:.tarと.tgzファイル
第37章 アプリケーションの配布
ビルド構成
リリースビルドの作成
アプリケーションのサンドボックス化
Mac App Store
第38章 終わりに
索引