実行時にUIMenu内のUIActionの状態を変更するにはどうすればよいですか?

大都市

UIActionの状態を変更するにはどうすればよいですか?目標は、UIMenu内のUIActionの横にある状態チェックマークを切り替えることです。

ここに画像の説明を入力してください

stateビューコントローラに保存されている参照を介してUIActionを変更しても、状態はまったく変更されないようです。私は何かが足りませんか?

// View Controller
internal var menuAction: UIAction!

private func generatePullDownMenu() -> UIMenu {
    menuAction = UIAction(
        title: "Foo",
        image: UIImage(systemName: "chevron.down"),
        identifier: UIAction.Identifier("come.sample.action"),
        state:  .on
    ) { _ in self.menuAction.state = .off } // <--- THIS LINE


    let menu = UIMenu(
        title: "Sample Menu",
        image: nil,
        identifier: UIMenu.Identifier("com.sample.menu"),
        options: [],
        children: [menuAction]
    )

    return menu
}

// Inside UI setup code block
let buttonItem = UIBarButtonItem(
    title: "",
    image: UIImage(systemName: "chevron.down"),
    primaryAction: nil,
    menu: generatePullDownMenu()
)

actionクロージャーから直接状態を変更しようとしましたが、「メニューの子であるため、アクションは不変です」というエラーが発生しました。今、私はアクションオブジェクトが常に不変のオブジェクトであると思います。

menuAction = UIAction(
    title: "Foo",
    image: UIImage(systemName: "chevron.down"),
    identifier: UIAction.Identifier("come.sample.action"),
    state:  .on
) { action in action.state = .off } // <--- THIS LINE
大都市

UIMenu状態が変化したときにオブジェクト全体を置き換えると、うまくいきます。

// view controller
internal var barButton: UIBarButtonItem!

// UI setup function
barButton = UIBarButtonItem(
    image: UIImage(systemName: "arrow.up.arrow.down.square"),
    primaryAction: nil,
    menu: generatePullDownMenu()
)

// On state change inside UIAction 
let actionNextSeen = UIAction(
    title: "foo",
    image: UIImage(systemName: "hourglass", )
    state: someVariable ? .off : .on
) { _ in
    someVariable = false
    self.barButton.menu = self.generatePullDownMenu()
}

参照

https://developer.apple.com/forums/thread/653862

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

UIMenu内のUIActionでアイコンの色を変更するにはどうすればよいですか?

分類Dev

ウィンドウ関数を介したSQLServer状態変更クエリ:状態* WITHIN *状態ブロックで実行中の合計時間を取得するにはどうすればよいですか?

分類Dev

実行時にTimerTaskの実行期間を変更するにはどうすればよいですか?

分類Dev

Reactjsで状態変数の値を変更するにはどうすればよいですか?

分類Dev

setStateの直後にsetTimeoutで反応状態を変更するにはどうすればよいですか?

分類Dev

実行時に制約の優先順位を変更するにはどうすればよいですか

分類Dev

実行時にapplication.yamlの値を変更するにはどうすればよいですか?

分類Dev

PHP 7.2の実行時にsession.gc_maxlifetimeを変更するにはどうすればよいですか?

分類Dev

実行時にImageViewの幅を変更するにはどうすればよいですか?

分類Dev

実行時にJSONファイルの値を変更するにはどうすればよいですか?

分類Dev

Swiftを使用してiOSでUIButtonの状態を変更するにはどうすればよいですか?

分類Dev

状態の一部のみを変更するにはどうすればよいですか?

分類Dev

パス文字列からReduxの状態を変更するにはどうすればよいですか?

分類Dev

JHipsterで休止状態のログレベルを変更するにはどうすればよいですか?

分類Dev

Angular 6でボタンの状態を変更するにはどうすればよいですか?

分類Dev

Reactで2つの状態を正しく変更するにはどうすればよいですか?

分類Dev

Javascriptでキーフレームの状態を変更するにはどうすればよいですか

分類Dev

入力間の状態を変更するにはどうすればよいですか?

分類Dev

チェックボックスの状態を変更するにはどうすればよいですか?

分類Dev

MaterialPageRouteの状態を変更するにはどうすればよいですか?

分類Dev

複数の同時実行時にTIME_WAIT状態の問題を解決するにはどうすればよいですか?

分類Dev

複数の入力の状態を処理し、それらの状態を親から変更するにはどうすればよいですか?

分類Dev

iOSアプリが一時停止状態のときにSignificantLocationの変更を処理するにはどうすればよいですか?

分類Dev

状態が変更されたときにfuturebuilderの即時再描画を強制するにはどうすればよいですか?

分類Dev

Xfceでシステム全体のレベルで休止状態と一時停止の設定を変更するにはどうすればよいですか?

分類Dev

クリック時に入力グループ内の変数の状態を設定するにはどうすればよいですか?

分類Dev

1つの状態を変更し、他のすべての状態をクリアするにはどうすればよいですか?

分類Dev

動的な国の状態の選択では、Javaスクリプトで実行します。状態のデフォルトの選択を変更するにはどうすればよいですか?

分類Dev

Reduxの場合:配列内のブール値の状態を変更するにはどうすればよいですか?

Related 関連記事

  1. 1

    UIMenu内のUIActionでアイコンの色を変更するにはどうすればよいですか?

  2. 2

    ウィンドウ関数を介したSQLServer状態変更クエリ:状態* WITHIN *状態ブロックで実行中の合計時間を取得するにはどうすればよいですか?

  3. 3

    実行時にTimerTaskの実行期間を変更するにはどうすればよいですか?

  4. 4

    Reactjsで状態変数の値を変更するにはどうすればよいですか?

  5. 5

    setStateの直後にsetTimeoutで反応状態を変更するにはどうすればよいですか?

  6. 6

    実行時に制約の優先順位を変更するにはどうすればよいですか

  7. 7

    実行時にapplication.yamlの値を変更するにはどうすればよいですか?

  8. 8

    PHP 7.2の実行時にsession.gc_maxlifetimeを変更するにはどうすればよいですか?

  9. 9

    実行時にImageViewの幅を変更するにはどうすればよいですか?

  10. 10

    実行時にJSONファイルの値を変更するにはどうすればよいですか?

  11. 11

    Swiftを使用してiOSでUIButtonの状態を変更するにはどうすればよいですか?

  12. 12

    状態の一部のみを変更するにはどうすればよいですか?

  13. 13

    パス文字列からReduxの状態を変更するにはどうすればよいですか?

  14. 14

    JHipsterで休止状態のログレベルを変更するにはどうすればよいですか?

  15. 15

    Angular 6でボタンの状態を変更するにはどうすればよいですか?

  16. 16

    Reactで2つの状態を正しく変更するにはどうすればよいですか?

  17. 17

    Javascriptでキーフレームの状態を変更するにはどうすればよいですか

  18. 18

    入力間の状態を変更するにはどうすればよいですか?

  19. 19

    チェックボックスの状態を変更するにはどうすればよいですか?

  20. 20

    MaterialPageRouteの状態を変更するにはどうすればよいですか?

  21. 21

    複数の同時実行時にTIME_WAIT状態の問題を解決するにはどうすればよいですか?

  22. 22

    複数の入力の状態を処理し、それらの状態を親から変更するにはどうすればよいですか?

  23. 23

    iOSアプリが一時停止状態のときにSignificantLocationの変更を処理するにはどうすればよいですか?

  24. 24

    状態が変更されたときにfuturebuilderの即時再描画を強制するにはどうすればよいですか?

  25. 25

    Xfceでシステム全体のレベルで休止状態と一時停止の設定を変更するにはどうすればよいですか?

  26. 26

    クリック時に入力グループ内の変数の状態を設定するにはどうすればよいですか?

  27. 27

    1つの状態を変更し、他のすべての状態をクリアするにはどうすればよいですか?

  28. 28

    動的な国の状態の選択では、Javaスクリプトで実行します。状態のデフォルトの選択を変更するにはどうすればよいですか?

  29. 29

    Reduxの場合:配列内のブール値の状態を変更するにはどうすればよいですか?

ホットタグ

アーカイブ