質問するログイン新規登録

Q&A

0回答

1214閲覧

MacOSでShare Extensionの値が取得できない

usagi001

総合スコア208

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Catalyst

Catalystは、Perlで書かれたオープンソースのウェブアプリケーションフレームワークです。 Ruby on Rails、Springなどのフレームワークに強い影響を受けています。

0グッド

0クリップ

投稿2020/02/02 05:42

0

0

前提・実現したいこと

iOS(13以上)とMacOS(Catalina以上)用のアプリを作成しており、Share Extensionでテキストを共有したいのですが、
Macで起動した場合にテキストの値が取得できません。

(iOSではテキストを取得できます。)

発生している問題・エラーメッセージ

extensionContext?.inputItems の中身を調べました。

Macで起動した場合 NSExtensionItemAttachmentsKey が下記の様に空になります。

▿ Optional<Array<Any>> ▿ some : 1 element - 0 : <NSExtensionItem: 0x6000030a8340> - userInfo: { NSExtensionItemAttachmentsKey = ( ); NSExtensionItemAttributedContentTextKey = {length = 315, bytes = 0x7b5c7274 66315c61 6e73695c 616e7369 ... 30204170 706c657d };

iOSの場合は下記のように値が入っています。

▿ Optional<Array<Any>> ▿ some : 1 element - 0 : <NSExtensionItem: 0x2809f4c90> - userInfo: { NSExtensionItemAttachmentsKey = ( "<NSItemProvider: 0x2820f24c0> {types = (\n \"public.plain-text\"\n)}" ); NSExtensionItemAttributedContentTextKey = {length = 316, bytes = 0x7b5c7274 66315c61 6e73695c 616e7369 ... 30204170 706c657d }; "com.apple.UIKit.NSExtensionItemUserInfoIsContentManagedKey" = 0; }

該当のソースコード

swift

1let extensionItem: NSExtensionItem = extensionContext?.inputItems.first as! NSExtensionItem 2guard let itemProvider = extensionItem.attachments?.first else { 3 return // ここを通ってしまう 4}

info.plist

xml

1<key>NSExtensionActivationRule</key> 2 <string>SUBQUERY (extensionItems,$extensionItem, 3 SUBQUERY ($extensionItem.attachments,$attachment, 4 (ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.text" 5 || ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO "public.plain-text") 6 ).@count == $extensionItem.attachments.@count).@count == 1 7 </string>

試したこと

info.plistを下記のようにしてみましたが変わりませんでした。

xml

1<key>NSExtensionActivationRule</key> 2 <dict> 3 <key>NSExtensionActivationSupportsText</key> 4 <true/> 5 </dict>

補足情報(FW/ツールのバージョンなど)

Xcode 11.3
ターゲット iOS 13

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問