gpt4 book ai didi

swift - macOS,工具栏不允许使用 segue 类型的弹出窗口

转载 作者:行者123 更新时间:2023-11-28 08:06:19 25 4
gpt4 key购买 nike

我想问一下为什么可以通过从按钮拖动到 NSWindowpopoversheetNSView 你不能从一个工具栏项目吗?

从工具栏只允许种类:显示、模态和自定义

最佳答案

虽然我不确定为什么这不能通过在 Interface Builder 中拖动来实现,但您仍然可以使用目标/操作机制手动显示弹出窗口。你的工具栏按钮会调用像 presentFooPopover(:) 这样的 Action ,它又会调用 NSViewControllerpresentViewController(_ viewController: NSViewController, asPopoverRelativeTo positioningRect: NSRect, of positioningView: NSView, preferredEdge: NSRectEdge, behavior: NSPopover.Behavior) 从某个 View 的某个位置呈现弹出窗口的目标 View Controller 。

呈现 View Controller (您在其上调用 presentViewController...)不必拥有您用于定位的 View 。另请注意,positioningRect 必须在 positioningView 的坐标系中,因此通常使用 View 的 bounds

将所有这些放在一起,您可以将按钮(sender 在您的操作中)作为定位 View 并使用其边界。负责显示弹出窗口的 View Controller 可以是您的窗口 Controller 或窗口的内容 View Controller (或者实际上任何在弹出窗口仍然显示时不会消失的东西,这也会关闭弹出窗口)。

关于swift - macOS,工具栏不允许使用 segue 类型的弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44997534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com