gpt4 book ai didi

xcode - 在 xcode 7 中使用 Mac App 预配置菜单项

转载 作者:行者123 更新时间:2023-12-03 17:19:53 25 4
gpt4 key购买 nike

我正在编写一些简单的 Mac 应用程序,以了解有关各种 cocoa 编程主题的更多信息,虽然添加/删除和编码新菜单项似乎非常简单,但我很难理解大量的预配置菜单元素以及如何正确使用它们。 (只是为了学习经验)。

例如,基于 OS X 的 Mac 应用程序,Xcode 7.x 中的 Cocoa 应用程序模板将具有相当完整的菜单。但如何使用它呢? App->About 菜单项将显示关于框,Quit 将退出应用程序,但如何使用其他项?

我认为它与响应者链和当前上下文有关,但我不确定。

我尝试使用文本字段进行实验,发现如果在属性检查器中选择了“允许富文本”选项,我可以更改所选文本的字体颜色并使用取消划线。可以从应用程序的菜单激活颜色选择器,果然,它会更改文本颜色。但是代码在哪里以及它如何知道我已经选择了一些文本?其他几个菜单项也可用,但其他菜单项被禁用。例如,我无法选择粗体或斜体。

抱歉,如果这是一个很长的问题,但我无法找到有关这些预配置菜单项如何工作的任何明确解释。

如果有任何影响的话,我正在使用 Storyboard。

最佳答案

正如您所说,这个问题相当广泛,要完成治疗,需要的不仅仅是一个答案。但我会尝试给出一些提示(我不是 Storyboard专家,但我认为这是相同的)。

所有菜单项的工作方式都相同。当您单击它时,会触发一个操作(带有目标的方法)。您可以在 IB 的连接检查器 Pane 中看到这一点。

该操作可以定向到特定目标(例如 viewController)或通用目标(例如第一响应者(== nil))。使用后一种方法,消息调用将沿着应用程序的响应者链向上,直到找到响应者(或没有响应者)。

正如您所注意到的,一些菜单选项已经可以使用,例如辞职。这是因为它们预先连接了一个操作(Exit 向第一响应者发送 terminate:)。然后这个方法在项目提供的App脚手架中的某个地方实现,例如terminate:是由位于响应者链末尾的NSApplication单例实现的。

要使其他菜单选项按照您想要的方式工作,找出其预定义操作,例如“复制”将 copy: 发送到第一响应者。然后在响应者链中的对象中实现该操作方法。为了进行测试,将它们放入位于链末端的应用程序委托(delegate)中。

如果您需要不同窗口的特定行为(例如打印),请在每个窗口 Controller 中放置一个 print: 方法。响应者链中的第一个将捕获命令,并且根据顶部的窗口,您将获得不同的行为。

关于xcode - 在 xcode 7 中使用 Mac App 预配置菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34053737/

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