2016年2月15日月曜日

OS X : PDFの表示(2)アウトラインビューでPDF一覧を表示する

前回のPDFの表示(1)では、スプリットビューコントローラを使ったマスターディテール構造のサンプルアプリケーションを作成しました。今回はこれをベースにして、PDF一覧機能(アウトラインビュー)を追加したいと思います。

作業手順:

  1. アウトラインビューの追加
  2. モデルの作成
  3. アウトラインビュー機能の作成
ソース管理:ここまでの状態をコミット
ソース管理:新規ブランチ(PDF一覧機能の作成)を作成
ソース管理についてはこちらを参照

アウトラインビューの追加

ストーリボード:
  • オブジェクトライブラリからソースリストビューをアウトラインビューコントローラ・シーン へ追加します:
  • 
ピンツールで自動レイアウトのための制約(子ビューのソースリストビューの上左右下の各辺を親ビューの上左右下の各辺から0ポイントの位置にする)を設定します:
  • 自動レイアウトの問題解決ツールのメニューで "update frame" を選択します。
  • 
サイズインスペクタで、アウトラインビューコントローラのビューの width を 200 に設定します。
自動レイアウトついてはこちらを参照

モデルの作成

Model グループ下に Domain.swift を作成します:
  • 32-42行:Cコンテンツ クラス
    画像ファイル、PDFファイル、動画ファイルなどのタイトルとパスを保持します。このサンプルでは PDFファイルの情報を格納します。
  • 18-27行:Cグループ クラス
    コンテンツをグループ化するためのクラスです。このサンプルでは "Java", "Swift" などプログラム言語でグループ分けしています。
  • 行6-13行:Cタイプ クラス
    このサンプルでは、グループをさらにまとめるために使用します。"Java", "Swift" グループは "プログラミング" タイプに属します。

アウトラインビュー機能の作成

  • ストーリボードのドキュメントアウトラインで、左側の View Controller シーンの Outline View を選択します。
    ViewController.swift へ CTRL+ドラッグします:
  • 表示されたポップアップで次のように入力して、Outlet を作成します:
  • ViewController.swift を次のように修正します:
    • 4,5行:
      ViewController クラスを NSOutlineViewDelegate, NSOutlineViewDataSource のサブクラスとして宣言します。
    • 58-181行:
      NSOutlineViewDelegate, NSOutlineViewDataSource のサブクラスとして必要な機能を実装します。
      • 58-78行:
        データソースのそれぞれの項目に対して、指定したインデックス(index)の子項目を返します。
      • 82-93行:
        データソースの項目(タイプ|グループ)が展開可能かどうかをチェックします。
      • 96-113行:
        データソースのそれぞれの項目が持つ子項目の数を返します。
      • 119-153行:
        項目のデータ(名前、タイトル、アイコンなど)を設定したビューを返します。
        121-123行:
        項目がCタイプの場合は identifier:"HeaderCell" でビューを取得します。
        129-131,139-141行:
        項目がCグループ|Cコンテンツの場合は identifier:"DataCell" でビューを取得します。
        アイデンティティインスペクタで identifier を確認(または変更)できます:

ソース管理:ここまでの状態をコミット

0 件のコメント:

コメントを投稿