iOS SwiftUI 如何在与代码交互时调出 "Embed in VStack" 等额外操作?

iOS SwiftUI how to bring up extra actions like "Embed in VStack" when interacting with code?

我正在查看 this SwiftUI tutorial,它表明我可以在代码 中通过命令单击 SwiftUI 元素时看到额外的操作 。在我的 Xcode 中,这使我跳转到 class 定义。

我看到 XCode 11.0 中有一个选项 t 更改选项键以显示 SwiftUI 检查器,但是,这仍然不允许我使用 "Embed in VStack"[=16 等操作修改 SwiftUI 代码元素=]

如何在与 SwiftUI 代码(不是预览)交互时同时获得检查器和额外的 SwiftUI 操作?

额外的 SwiftUI 操作 在 Canvas 打开时显示(快捷键:Option-Command-Enter 或 ⌥+⌘+↵):

canvas已关闭

canvas打开

已接受的答案在 macOS 10.15.5Xcode 11.4.1 上对我不起作用。

好消息 是您可以通过 SwiftUI 元素上的 [Command][Shift][Left Click] 快捷方式或通过单击 Show Code Actions右键单击菜单。

您可以在 Xcode -> 首选项,导航选项卡下更改命令单击行为。

相当不直观,如果您选择“选择代码结构”,那么 command+click 将调出您正在寻找的 SwiftUI 菜单选项(假设 canvas 是打开)。

如果你这样做,你仍然可以通过control+command+click

跳转到定义

相反,如果您希望继续使用 command+click 跳转到定义,您可以改为使用 control+command+click 调出 SwiftUI 菜单选项。

如果您的偏好与 Xcode 预期的不同,则在 Xcode 12.2 和 12.3(在 MacOS 10.15.5 下)中单击视图的命令将不起作用。

您必须将 Command-click on Code:Navigation 首选项更改为 Selects Code Structure,然后当您命令单击 View 时,正确的菜单才会出现。

改变这个。按命令,打开您的首选项和 select Navigation 按钮。您需要更改的选项在第一个弹出菜单中。

我建议使用 Xcode 热键来调出代码操作,而不是使用鼠标。导航至首选项 -> 键绑定并搜索 Show Code Actions。您会看到可以自定义的预设热键。我的默认键绑定是 Shift+Command+A。当您按下热键时,请确保您的光标位于预期的元素上。