質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.50%
Swift

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

Q&A

解決済

1回答

3117閲覧

[swift4] ボタンをタップした際にメニューを表示したい。

退会済みユーザー

退会済みユーザー

総合スコア0

Swift

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

0グッド

0クリップ

投稿2018/01/19 17:24

UIButtonをタップした際にUIMenuControllerに追加したMenuItemを表示したいのですが
どのように呼び出せばよいのでしょうか? 

swift

1override func viewDidLoad() { 2 3 super.viewDidLoad() 4 5     // MenuControllerを生成 6 let myMenuController: UIMenuController = UIMenuController.shared 7  // MenuItmを生成する 8 let menuItem1: UIMenuItem = UIMenuItem(title: "copy", action: #selector(FileNavigator.CopyPaste)) 9 let menuItem2: UIMenuItem = UIMenuItem(title: "rename", action: #selector(FileNavigator.Rename)) 10 let menuItem3: UIMenuItem = UIMenuItem(title: "delete", action: #selector(FileNavigator.Delete)) 11 // MenuItemを配列に格納する 12 let myMenuItems: NSArray = [menuItem1, menuItem2, menuItem3] 13 // MenuControllerにMenuItemを追加する 14 myMenuController.menuItems = myMenuItems as? [UIMenuItem] 15 myMenuController.arrowDirection = UIMenuControllerArrowDirection.up 16}

こんな感じで設定してあるメニューを任意のボタンをタップした際に呼び出せるでしょうか?

swift

1@IBAction func fileMenuButtonTapped(_ sender: UIButton) { 2 ここで呼び出したい。 3}

collectionViewCellを長押しした際に表示するために設定したメニューでしたが、cellの並び替え機能と同時実装すると
並び替えが動きませんでした。
メニュー表示はセル上に設置したボタンをタップした際に呼び出すよう変更したいので、ご存知でしたら教えてください。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ボタンのカスタムクラス内で
メニューを追加して、canPerformActionをオーバーライド

ボタンタップでメニューを表示できました。

投稿2018/01/21 19:03

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問