【Xcode】3D Touch shortcutsをObjective-Cで実装してみた 【Static】

3DTouch

せっかくiPhone6sにしてみたので、3D Touch shortcutsを実装してみた。
Staticは案外簡単。
Dynamicはいずれ。

info.plistにリストを作成

アプリの中にあるInfo.plistをクリックし、適当なところで右クリック→Add Row。

3DTouch

Application Categoryが追加されるので、KeyのApplication CategoryをUIApplicationShortcutItemsに変え、TypeをArrayに変える。

3DTouch

UIApplicationShortcutItemsの右にある+ボタンをクリックしてItem0を追加し、TypeをDictionaryに変える。

3DTouch

Item0の右にある+ボタンをクリックしてNew itemを追加し、KeyをUIApplicationShortcutItemType、Valueを $(PRODUCT_BUNDLE_IDENTIFIER).Firstにでもしよう。
この値はタップしたときに呼ばれる値なので、識別できれば何でもよい。
同様にしてUIApplicationShortcutItemTitleも作成。
これは3DTouchでアプリのアイコンを押し込んだときに表示される文になる。 検索やメニューの名前など、好きな名前を入れよう。
今回はVCSecondにした。

3DTouch

これでコンパイルしてみよう。
一度アプリを終了させ、アプリのアイコンをぐいっと押し込んでみると・・・

3DTouch

メニューが出た。
ただ、今の状態でメニューをタップしてもアプリが普通に起動するだけ。

AppDelegate.mにコードを追加

AppDelegateに3D Touchでメニューをタップ時に呼ばれるコードを追加。

このメソッドでショートカットメニューがタップされたときの情報が取得可能。
shortcutItemから情報を取り出す。
shortcutItem.typeから変数touchに代入してるが、中の値はUIApplicationShortcutItemTypeから取り出され、”アプリのバンドル名”.Firstになる。

info.plistのプロパティ

Item内のプロパティUIApplicationShortcutItemTitle、UIApplicationShortcutItemTitleは必須だが、この2つ以外にも、
UIApplicationShortcutItemSubtitleでサブタイトルの表示、
UIApplicationShortcutItemIconTypeで定型アイコンの表示、
UIApplicationShortcutItemIconFileでカスタムアイコンの表示、
UIApplicationShortcutItemUserInfoでDictionaryのデータの引き渡しが可能。
適宜付け加えてみてください。

サンプルソース

説明だけじゃわかりにくいので、簡単なサンプルをGitHubにアップロードしました。

3DTouchTest

中のinfo.plistとAppDelegate.mのソースコードを見ればわかると思います。

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)