iOS SwiftUI 在与代码交互时如何调出“嵌入 VStack”之类的额外操作?
Posted
技术标签:
【中文标题】iOS SwiftUI 在与代码交互时如何调出“嵌入 VStack”之类的额外操作?【英文标题】:iOS SwiftUI how to bring up extra actions like "Embed in VStack" when interacting with code? 【发布时间】:2020-01-01 12:33:28 【问题描述】:我正在查看 this SwiftUI tutorial,它表明我可以在命令单击 代码中 的 SwiftUI 元素时看到额外的操作。在我的 Xcode 中,这会跳转到类定义。
我看到 XCode 11.0 中有一个选项 t 更改 Option 键以显示 SwiftUI 检查器,但是,这仍然不允许我使用“嵌入 VStack”之类的操作修改 SwiftUI 代码元素
在与 SwiftUI 代码(不是预览版)交互时,如何同时获得检查器和额外的 SwiftUI 操作?
【问题讨论】:
Canvas必须打开,详情请看here。 【参考方案1】:额外的 SwiftUI 操作在 Canvas 打开时显示(快捷键:Option-Command-Enter 或 ⌥+⌘+↵):
画布已关闭
画布已打开
【讨论】:
即使我的画布正在显示,它仍然没有显示给我。 @ScottyBlades 你使用什么 Xcode 版本?您是否尝试过重新启动它? 版本 12.4 (12D4e),是的,我尝试重新启动它。它只是间歇/随机显示。【参考方案2】:接受的答案在macOS 10.15.5
和Xcode 11.4.1
上对我不起作用。
好消息是您可以通过SwiftUI
元素上的[Command][Shift][Left Click]
快捷方式或单击右键菜单上的Show Code Actions
来获取它。
【讨论】:
这对我很有帮助,因为我遇到了同样的问题。然后,我发现如果我转到 Xcode -> Preferences -> Navigate 并将命令单击行为更改为 Selects Code Structure,我也可以使用 command+click 到达那里。【参考方案3】:您可以在 Xcode -> Preferences, Navigate 选项卡下更改命令单击行为。
相当不直观,如果您选择“选择代码结构”,那么command
+click
将显示您正在寻找的 SwiftUI 菜单选项(假设画布已打开)。
如果你这样做,你仍然可以通过control
+command
+click
跳转到定义
相反,如果您希望继续使用 command
+click
跳转到定义,则可以改为使用 control
+command
+click
来调出 SwiftUI 菜单选项。
【讨论】:
不错的发现!我希望 SwiftUI 少于我想要跳转到定义,否则这对我来说也是赢家。【参考方案4】:我建议不要使用鼠标,而是使用 Xcode 热键来调出代码操作。导航到 Preferences -> Key Bindings 并搜索 Show Code Actions
。您将看到预设的热键,然后您可以对其进行自定义。我的默认键绑定是Shift
+Command
+A
。当您按下热键时,请确保您的光标位于预期的元素上。
【讨论】:
【参考方案5】:如果您的偏好与 Xcode 预期的不同,则在 Xcode 12.2 和 12.3(在 MacOS 10.15.5 下)中单击视图的命令将不起作用。
您必须将Command-click on Code:
的Navigation
首选项更改为Selects Code Structure
,然后当您命令单击View
时才会出现正确的菜单。
改变这一点。按 command , 打开您的首选项并选择 Navigation
按钮。您需要更改的选项在第一个弹出菜单中。
【讨论】:
以上是关于iOS SwiftUI 在与代码交互时如何调出“嵌入 VStack”之类的额外操作?的主要内容,如果未能解决你的问题,请参考以下文章
当玩家在与 NPC 交互时选择特定的对话选项时,我如何执行某些操作?
SwiftUI 中的 WKWebView - 用户与网站交互时如何切换视图?
单击搜索栏时如何显示单独的视图? [SwiftUI] [关闭]