gpt4 book ai didi

cocoa - 如何知道哪个 NSTableView 打开了上下文菜单?

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

我有 5 个 NSTableView 实例,它们具有相同的上下文菜单。当我收到菜单已被单击的消息时,我需要知道哪个表发送了它。我已经检查了 NSMenu 文档,但我似乎没有找到一种方法来检查哪个表打开了菜单。

我正在考虑子类化 NSTableView 并向 menuForEvent 上的委托(delegate)发送消息,这是最好的方法吗?

更新:

谢谢 Joshua,我正在使用 5 个表格来显示每周 5 天的任务计划。每个表代表一个工作日,我添加了用于添加和删除任务的上下文菜单。因此,当用户在工作日单击“添加任务”时,我需要知道是哪一个。我通过对 tableview 进行子类化并在菜单打开时向委托(delegate)发送消息来使其工作。通过这种方式,我的 Controller 知道哪个表是最后调用菜单的。但在我看来,这并不是最好的实现,也许就像你说的问题在于 UI,你觉得呢?何塞。

最佳答案

我没有找到获取此信息的方法。菜单不“附加”到任何东西;它们显示在某个位置。你的 -menuForEvent: 覆盖可能有效,但它让我心烦意乱。

虽然这不是您问题的答案,但我承认我的第一 react 是“为什么你们有多张 table 的菜单完全相同?”这对我来说更像是一个用户界面问题。人们可能会认为上下文菜单非常特定于它所代表的特定类型的事物(或其 View )。这就引出了一个问题:为什么你有 5 个 TableView ,它们都具有完全相同的上下文?如果所有 5 个表都表示由(大概)相同的 Controller 以相同方式控制的事物,那么很可能有比 5 个单独的表更好的方法来表示您的“事物集合”。

当然,我做了很多假设,但我想我的好奇心战胜了我。 :-)

关于cocoa - 如何知道哪个 NSTableView 打开了上下文菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3795584/

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