首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSDatePicker可以有上下文菜单吗?

NSDatePicker可以有上下文菜单吗?
EN

Stack Overflow用户
提问于 2015-03-14 00:39:59
回答 1查看 113关注 0票数 0

我一直在为我正在开发的OSX应用程序添加上下文菜单,并且已经成功地为表视图创建了一个菜单。但是,我在向NSDatePicker添加上下文菜单时遇到了问题。我已经将“菜单”出口连接到了一个NSMenu,但是右键单击NSDatePicker不会打开菜单。

我已经检查了日期选择器上的菜单属性,并且它似乎被正确设置。

尝试为NSDatePicker创建上下文菜单是否存在固有的问题?如果是这样的话,是否有一种方法来实现这个工作(缺少重新实现NSDatePicker)?如果可能的话,我也希望避免使用额外的按钮来显示菜单--右击日期选择器显然是一种直观的方式。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-14 02:43:22

在OSX10.9.5上,class-dump显示NSDatePicker覆盖-rightMouseDown: (以及-rightMouseDragged:-rightMouseUp:)。我猜它没有打到超级电话,所以也是(偶然?)阻塞上下文菜单。

首先,在日期选择器中正确地拖着做一些独特的事情吗?我一直没能看到,但谁知道呢。它可能依赖于datePickerStyle和/或datePickerMode

而且,我没有看到-mouseDown:的覆盖。所以,我打赌点击控件会弹出上下文菜单。

我建议你接受这个限制。但是,如果您真的想强制解决这个问题,您可能需要对NSDatePicker进行子类化,并重写-rightMouse...方法。对于-rightMouseDown:,可以调用NSMenu* menu = [self menuForEvent:theEvent],如果返回菜单,则调用[NSMenu popUpContextMenu:menu withEvent:theEvent forView:self]。否则,什么也不做(即不打电话到super)。

对于另外两种方法,您可能不应该做任何事情来防止超类方法在没有得到右下鼠标事件的情况下看到右拖动和右上鼠标事件而变得混乱。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29044140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档