问题标签 [uimenu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1728 浏览

ios - buildMenu 在 AppDelegate 中被调用,而不是 UIViewController

我正在尝试为我的应用程序中的每个视图创建一个自定义菜单,但是在视图控制器中似乎没有调用 buildMenu。这是一个例子:

在我的 AppDelegate 中,使用了此代码,它按预期 100% 工作。

但是,我需要根据用户在应用程序中的位置更改菜单中可用的选项,因此我尝试在 UIViewController 中执行此操作:

然后再次..

但是 UIViewController 中的 buildMenu 永远不会被调用:(

如果这是预期的行为或是否有任何解决方法,有什么想法吗?

0 投票
3 回答
872 浏览

swift - iOS 13 - UIMenu 是否有不显示其图像的错误?

将以下代码粘贴到项目中:

“设备蜂蜜” UIMenu (即UIACtion.

难道我做错了什么?如果这是一个错误?有解决方法吗?

在此处输入图像描述

在 Apple 的 WWDC 演示中,他们能够做到这一点,如下所示:

在此处输入图像描述

0 投票
0 回答
144 浏览

ios - 如何使用 UIContextMenuConfiguration 给出的建议操作?

除了WWDC 视频 - 44:18一个示例项目,网上没有太多信息。

所以actionProvider,当被调用时,有一个suggestedActions 系统传递给它的列表。

这可以是UIMenus 和UIActions 的混合,因此可能是从系统中提取的完全构造的层次结构。这些可能是您使用 iOS 13 中引入的新 UI 命令 API 在响应者链中定义的内容,也可能是其他系统组件提供的内容。所以我们在这里做一个完全自定义的菜单,所以我们将把它放在suggestedActions一边。首先,我们将创建我们的编辑菜单。

但到目前为止,我了解到的是,给定的标识符可以具有预定义的建议操作,suggestionActions这些操作不与任何标识符相关联。如果我更改该标识符,suggestedActions则不会更改。它似乎是基于它的上下文,在这里我猜我在 tableviewcell 的上下文中......

我试图看看它是什么样子,但什么也没有出现。如果我点击单元格,则没有任何显示。

我也打印suggestedActions了,我得到的是:

0 投票
2 回答
157 浏览

mac-catalyst - 如何自定义“关于应用程序”菜单项

我已经成功地将我的 Chord calculus 应用程序移植到 Mac Catalyst 上,其中包含有效的键盘命令、上下文菜单和多个场景。甚至可以将指板截屏到剪贴板,用于开发教程内容。仍在努力将其保存到文件中,但已经让 DocumentView 正常工作,所以完成它只是繁重的工作。

我目前正在研究与模式相关的主菜单项。我想更改简单的“关于应用程序”菜单项,但不清楚该怎么做。我可以用方法替换它builder.replace(),但我得到一个指向子菜单的菜单。想要一个简单的按钮来生成“警报”类型的响应。建议?

0 投票
3 回答
3097 浏览

ios - 如何在 UIMenu 显示支持动态操作之前对其进行修改

iOS 14 添加了在点击或长按 UIBarButtonItem 或 UIButton 时显示菜单的功能,如下所示:

这通常会替换操作表(UIAlertController带有actionSheet样式)。拥有一个动态操作表非常常见,其中仅包含操作,或者根据用户点击按钮时的某些状态可能会禁用操作。但是使用此 API,菜单是在创建按钮时创建的。您如何在菜单出现之前对其进行修改或以其他方式使其动态化以确保适当的操作可用并在出现时处于适当的状态?

0 投票
3 回答
4681 浏览

swift - 单击 UIBarButtonItem 时显示 UIMenu

在 iOS 14 中,有新的 API UIMenu,现在可以附加到UIBarButtonItem,就像这样:

这是我的代码:

但问题是,当我按下按钮时,什么也没有发生。只有当我长按按钮时,它才会显示菜单。我在网上看到过这段代码:

但这对我没有帮助,因为Value of type 'UIBarButtonItem' has no member 'showsMenuAsPrimaryAction'

任何想法如何解决?我正在使用 Xcode 12.0 beta 4 (12A8179i)。

0 投票
2 回答
525 浏览

ios - iOS 14 在打开之前设置 UIBarButtonItem 菜单

由于 iOS14 提供了一种在 上设置菜单的简单方法UIBarButtonItem,我想知道我是否错过了设置其项目的简单方法,因为它们可能取决于当前上下文。

我看到有UIDeferredMenuElement,但这似乎不是一个好的用例?

我也看到有primaryAction,但似乎没有一种简单的方法可以从那里调用菜单。

第三个选项似乎是在可能影响它的每个更改上重新调整菜单,但这似乎不是一个好主意。

我假设我错过了一些东西。

0 投票
1 回答
90 浏览

objective-c - 从窗口菜单中删除与选项卡相关的功能?

我正在自定义我的 Mac Catalyst 应用程序中的菜单。正如您在以下屏幕截图中看到的那样,我添加了两个项目(“设置窗口大小”和“打开单独的文档查看器”)。但是我想去掉这两个项目之间出现的默认菜单项(四个与选项卡相关的功能)。

我的窗口菜单的屏幕截图

buildMenuWithBuilder中,我可以像这样删除一些项目(子菜单):

但是包含选项卡功能的子菜单没有定义标识符buildMenuWithBuilder更重要的是,它在运行时还不存在。如果我将此代码放在该方法的末尾...

...然后 test2 仅包含两个默认菜单,UIMenuMinimizeAndZoomUIMenuBringAllToFront,以及我的自定义菜单。所以即使我有它的标识符,我怀疑在这里删除它也没有任何效果。

更奇怪的是,它出现在我的两个自定义菜单之间,即使我用insertChildMenu:atStartOfMenuForIdentifier:.

最后,我注意到当我打开第二个场景(在一个新的 Mac 窗口中)时,这些选项卡选项从窗口菜单中消失并且不再出现。似乎 macOS 最初决定这些功能可能与我的应用程序相关,但是当我打开一个场景时,它决定它们不相关并删除它们。所以我想知道是否有办法从一开始就告诉 macOS 不包括这些菜单项?

我认为这可能与NSWindow属性有关tabbingMode,但将我的主窗口设置为NSWindowTabbingModeDisallowed没有区别。我唯一的 Mac 开发经验是通过 Mac Catalyst,所以我不知道还能尝试什么。

0 投票
1 回答
245 浏览

ios14 - iOS 14 UIMenu 替换Children 不起作用

我想将带有条件菜单子项的 UIMenu 添加到 iOS14 上的 UIButton 菜单中,但 replaceChildren 不起作用。

菜单不变。我需要使用新的子项创建一个全新的 UIMenu 实例并将其分配给 self.button.menu。如何使用 replaceChildren 或任何错误?

0 投票
1 回答
334 浏览

ios - 找不到呈现视图控制器 UIContextMenuConfiguration

我有一个提供子视图控制器的父级。

非常基本的东西,一切都很好。

直到我实施

每当我长按应显示 UIMenu 的单元格时,我都会收到此错误: Failed to find a presenting view controller for view. The interaction's view (or an ancestor) must have an associated view controller for presentation to work

我以前从未见过这个错误,我在网上的任何地方都找不到。

看起来我没有任何委托方法可以将演示文稿定向到特定的视图控制器。

例如,如果我想在这个孩子之上展示一个模态,我可以这样做:

parent?.present(vc, animated: true)

我不知道如何解决这个问题。

所以总结一下这个问题:

我有一个带有UITableView. 我正在尝试使用委托方法来呈现UIMenu. 它不起作用,我认为因为它是一个子视图控制器,但不知道为什么或如何修复它