问题标签 [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.
ios - buildMenu 在 AppDelegate 中被调用,而不是 UIViewController
我正在尝试为我的应用程序中的每个视图创建一个自定义菜单,但是在视图控制器中似乎没有调用 buildMenu。这是一个例子:
在我的 AppDelegate 中,使用了此代码,它按预期 100% 工作。
但是,我需要根据用户在应用程序中的位置更改菜单中可用的选项,因此我尝试在 UIViewController 中执行此操作:
然后再次..
但是 UIViewController 中的 buildMenu 永远不会被调用:(
如果这是预期的行为或是否有任何解决方法,有什么想法吗?
ios - 如何使用 UIContextMenuConfiguration 给出的建议操作?
除了WWDC 视频 - 44:18一个示例项目,网上没有太多信息。
所以
actionProvider
,当被调用时,有一个suggestedActions
系统传递给它的列表。这可以是
UIMenu
s 和UIAction
s 的混合,因此可能是从系统中提取的完全构造的层次结构。这些可能是您使用 iOS 13 中引入的新 UI 命令 API 在响应者链中定义的内容,也可能是其他系统组件提供的内容。所以我们在这里做一个完全自定义的菜单,所以我们将把它放在suggestedActions
一边。首先,我们将创建我们的编辑菜单。
但到目前为止,我了解到的是,给定的标识符可以具有预定义的建议操作,suggestionActions
这些操作不与任何标识符相关联。如果我更改该标识符,suggestedActions
则不会更改。它似乎是基于它的上下文,在这里我猜我在 tableviewcell 的上下文中......
我试图看看它是什么样子,但什么也没有出现。如果我点击单元格,则没有任何显示。
我也打印suggestedActions
了,我得到的是:
mac-catalyst - 如何自定义“关于应用程序”菜单项
我已经成功地将我的 Chord calculus 应用程序移植到 Mac Catalyst 上,其中包含有效的键盘命令、上下文菜单和多个场景。甚至可以将指板截屏到剪贴板,用于开发教程内容。仍在努力将其保存到文件中,但已经让 DocumentView 正常工作,所以完成它只是繁重的工作。
我目前正在研究与模式相关的主菜单项。我想更改简单的“关于应用程序”菜单项,但不清楚该怎么做。我可以用方法替换它builder.replace()
,但我得到一个指向子菜单的菜单。想要一个简单的按钮来生成“警报”类型的响应。建议?
ios - 如何在 UIMenu 显示支持动态操作之前对其进行修改
iOS 14 添加了在点击或长按 UIBarButtonItem 或 UIButton 时显示菜单的功能,如下所示:
这通常会替换操作表(UIAlertController
带有actionSheet
样式)。拥有一个动态操作表非常常见,其中仅包含操作,或者根据用户点击按钮时的某些状态可能会禁用操作。但是使用此 API,菜单是在创建按钮时创建的。您如何在菜单出现之前对其进行修改或以其他方式使其动态化以确保适当的操作可用并在出现时处于适当的状态?
ios - iOS 14 在打开之前设置 UIBarButtonItem 菜单
由于 iOS14 提供了一种在 上设置菜单的简单方法UIBarButtonItem
,我想知道我是否错过了设置其项目的简单方法,因为它们可能取决于当前上下文。
我看到有UIDeferredMenuElement
,但这似乎不是一个好的用例?
我也看到有primaryAction
,但似乎没有一种简单的方法可以从那里调用菜单。
第三个选项似乎是在可能影响它的每个更改上重新调整菜单,但这似乎不是一个好主意。
我假设我错过了一些东西。
objective-c - 从窗口菜单中删除与选项卡相关的功能?
我正在自定义我的 Mac Catalyst 应用程序中的菜单。正如您在以下屏幕截图中看到的那样,我添加了两个项目(“设置窗口大小”和“打开单独的文档查看器”)。但是我想去掉这两个项目之间出现的默认菜单项(四个与选项卡相关的功能)。
在buildMenuWithBuilder
中,我可以像这样删除一些项目(子菜单):
但是包含选项卡功能的子菜单没有定义标识符。buildMenuWithBuilder
更重要的是,它在运行时还不存在。如果我将此代码放在该方法的末尾...
...然后 test2 仅包含两个默认菜单,UIMenuMinimizeAndZoom
和UIMenuBringAllToFront
,以及我的自定义菜单。所以即使我有它的标识符,我怀疑在这里删除它也没有任何效果。
更奇怪的是,它出现在我的两个自定义菜单之间,即使我用insertChildMenu:atStartOfMenuForIdentifier:
.
最后,我注意到当我打开第二个场景(在一个新的 Mac 窗口中)时,这些选项卡选项从窗口菜单中消失并且不再出现。似乎 macOS 最初决定这些功能可能与我的应用程序相关,但是当我打开一个场景时,它决定它们不相关并删除它们。所以我想知道是否有办法从一开始就告诉 macOS 不包括这些菜单项?
我认为这可能与NSWindow
属性有关tabbingMode
,但将我的主窗口设置为NSWindowTabbingModeDisallowed
没有区别。我唯一的 Mac 开发经验是通过 Mac Catalyst,所以我不知道还能尝试什么。
ios14 - iOS 14 UIMenu 替换Children 不起作用
我想将带有条件菜单子项的 UIMenu 添加到 iOS14 上的 UIButton 菜单中,但 replaceChildren 不起作用。
菜单不变。我需要使用新的子项创建一个全新的 UIMenu 实例并将其分配给 self.button.menu。如何使用 replaceChildren 或任何错误?
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
. 它不起作用,我认为因为它是一个子视图控制器,但不知道为什么或如何修复它