问题标签 [uiaction]

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 回答
350 浏览

ios - 如何手动更改 UIMenu 中选定的 UIAction?

目标: 尝试创建一个过滤器选择屏幕(在卡片视图中),其中包含带有 UIMenu 项的 UIButtons。当我选择任何过滤器并单击应用过滤器按钮时,我关闭过滤器视图控制器并返回到集合视图屏幕以使用所选过滤器刷新数据。

问题: 已经选择了过滤器,当我想再次返回以更改任何过滤器时,我单击过滤器按钮打开过滤器视图控制器,但显然没有保留任何 UIMenu 选择,因为它们首先重置为默认值指标设置。

如何解决?: 当将我的数据从 filterVC 传递回主列表屏幕时,我传递了所选 UIMenu 的标题。我在想我可以把它传回filterVC并将菜单默认为传入的数据,(即可以搜索标题并使其成为UIMenu中选定的UIAction),但是我似乎无法找到一种方法手动选择哪个 UIAction 应该是 UIMenu 的选中状态!

然后从 viewdidload() 调用以下内容

选择过滤器后,我将它们传递回之前的 VC:

站点、空间类型、持续时间都是带有用于过滤器选项的 UIMenu 的 UI 按钮,这些选项现在只是像上面那样硬编码。

我想要发生的是,如果我在调用 applyFiltersButtonPressed() 以关闭 VC 之前选择了“Desks”,当我回到这个 FiltersVC 时,我希望“Desks”仍然被选为 UIbutton 中的文本并且还想要勾选“Desks”旁边,并且不希望菜单项默认回到第一个选项“All”。

希望这有意义吗?

0 投票
0 回答
33 浏览

ios - 没有 UIAction 的 UIMenu

我试图UIMenu在按下?按钮时显示而不显示任何UIAction向用户提供其他信息。我在我的应用程序的其他地方使用带有操作的菜单,因此我希望在整个应用程序中保持设计一致。我尝试过使用UIMenuchildren数组,但是当我点击按钮时它根本没有出现。如果我通过一个没有title属性的动作,那么我在文本下方有空白区域。

这是结果:

UIMenu 信息气泡

0 投票
1 回答
12 浏览

uibutton - 如何更改嵌入在 UIAction 中的基于 SF 符号的 UIButton 的颜色?

我正在使用以下代码生成一个按钮,但无法成功更改按钮的前景色。

我试过了

  • UIImage(systemName: "x.circle")?.withTintColor(.red)

  • UIImage(systemName: "x.circle")?.withTintColor(.systemRed, renderingMode: .alwaysOriginal)

  • button.setTitleColor(.systemRed, for: .normal)

  • 添加配置:

  • 使用不同的符号变体,例如:UIImage(systemName: "x.circle.fill")

在这种特定情况下,我只想更改图像的圆形背景区域的颜色,而不是 X(十字)或按钮的背景。本质上,我想要一个带有灰色 X(十字)的红色实心圆圈。

所以我可以得到这个: 在此处输入图像描述

但我想要更像这样的东西(红色限制在圆圈内): 在此处输入图像描述

0 投票
1 回答
83 浏览

ios - 在 iOS 14 中,如何以编程方式点击按钮?

在 iOS 14 中,我配置了一个按钮来显示问题菜单。就其本身而言,该按钮工作正常。以下是它的配置方式:

我将它设置在文本字段的 rightView 上。这是显示菜单时的外观。

在此处输入图像描述

当点击菜单项时,该问题会出现在文本字段上方的标签中。它工作得很好。除了…。

我还希望在用户点击文本字段时出现菜单。我不希望他们必须专门点击按钮。在过去的目标行动时代,这很容易:button.sendActions(for: .touchUpInside). 我试过了,.menuActionTriggered.primaryActionTriggered这些都不起作用。我认为 sendActions() 正在寻找基于旧选择器的操作。

但是有一个新的 sendActions(for: UIControl.Event) 方法。这是我正在尝试的textFieldShouldBeginEditing()

果然,当文本字段被点击时,“sent action”和“textField tapped”出现在控制台中。但我不知道我可以发送什么 UIAction 来表示“显示你的菜单”。我希望有这种方法:send(_: UIControl.Event)

关于如何在点击文本字段时让按钮显示其菜单的任何想法?

附言。是的,textFieldShouldBeginEditing需要知道是否选择了一个问题,在这种情况下需要允许编辑。那部分很容易。