objective-c – 保持上下文菜单(NSMenu).单击窗口上的任何位置时,不允许关闭上下文菜单

objective-c – 保持上下文菜单(NSMenu).单击窗口上的任何位置时,不允许关闭上下文菜单,第1张

概述我在NSTextField中右键单击显示上下文菜单.我使用以下代码在我的NSTextField的rightMouseDown事件中d出上下文菜单: - (void) rightMouseDown:(NSEvent*)theEvent{ NSMenu* theMenu = [[NSMenu alloc] initWithTitle:@"Contextual Menu"]; [theMen 我在NSTextFIEld中右键单击显示上下文菜单.我使用以下代码在我的NSTextFIEld的rightmouseDown事件中d出上下文菜单:

- (voID) rightmouseDown:(NSEvent*)theEvent{  NSMenu* themenu = [[NSMenu alloc] initWithTitle:@"Contextual Menu"];  [themenu insertItemWithTitle:@"Suggest link/MovIE" action:@selector(openSuggestionMovIElink) keyEquivalent:@"" atIndex:0];  [themenu setDelegate:self];  [NSMenu popUpContextMenu:themenu withEvent:theEvent forVIEw:self];}

当用户单击窗口上的任何位置时,我需要停止关闭此上下文菜单.

我尝试通过覆盖窗口的鼠标按下事件并且在上下文菜单打开时不在其中发送[super mousedown:event]调用来做同样的事情.这没用.

此外,我尝试使用NSMenu委托方法menuDIDClose:并再次打开其中的菜单.

- (voID)menuDIDClose:(NSMenu *)menu{   NSLog(@"close");   [NSMenu popUpContextMenu:menu withEvent:nil forVIEw:self];}

但没有什么对我有用.

有没有办法做同样的事情.请指出我正确的方向.
我会感激任何帮助.谢谢.

解决方法 您是否尝试过继承NSMenu并重写

- (voID)cancelTracking;- (voID)cancelTrackingWithoutAnimation;

修改以适应您的自定义行为?怎么了?

总结

以上是内存溢出为你收集整理的objective-c – 保持上下文菜单(NSMenu).单击窗口上的任何位置时,不允许关闭上下文菜单全部内容,希望文章能够帮你解决objective-c – 保持上下文菜单(NSMenu).单击窗口上的任何位置时,不允许关闭上下文菜单所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1072184.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存