Cocoa:当您右键单击NSTableView的单元格时,如何使用上下文菜单

Cocoa:当您右键单击NSTableView的单元格时,如何使用上下文菜单,第1张

概述我有一个TableView与自定义单元格.我想要一个上下文菜单出现在用户右键单击(或其他任何其他Apple变体右键单击)在其中一个单元格(并知道他们点击的单元格). 我试图子类化NSTableView并覆盖这个方法: - (NSMenu *)menuForEvent:(NSEvent *)theEvent; 但它永远不会被称为. 另一方面, - (void)rightMouseDown:(NSEv 我有一个tableVIEw与自定义单元格.我想要一个上下文菜单出现在用户右键单击(或其他任何其他Apple变体右键单击)在其中一个单元格(并知道他们点击的单元格).

我试图子类化NStableVIEw并覆盖这个方法:

- (NSMenu *)menuForEvent:(NSEvent *)theEvent;

但它永远不会被称为.

另一方面,

- (voID)rightmouseDown:(NSEvent *)theEvent;

得到叫.但我不知道这是我们想要的.

更多细节:

////  PTtableVIEw.m// ////  Created by Nathan Hazout on 5/31/11.//  copyright 2011 __MyCompanyname__. All rights reserved.//#import "PTtableVIEw.h"@implementation PTtableVIEw- (ID)init{    self = [super init];    if (self) {        // Initialization code here.    }    return self;}- (voID)rightmouseDown:(NSEvent *)theEvent {     NSLog(@"entered rightmouseDown");}- (NSMenu *)menuForEvent:(NSEvent *)theEvent {    NSLog(@"entered menuForEvent");    return [super menuForEvent:theEvent];}- (NSVIEw *)hitTest:(NSPoint)aPoint{    NSLog(@"entered hitTest");    return [super hitTest:aPoint];}- (voID)dealloc{    [super dealloc];}@end

rightmouseDown被调用. hiTest被多次呼叫但是menuForEvent没有.

解决方法 没有必要处理事件,所有你需要做的分配一个上下文菜单是设置表视图的菜单插槽来指向要用于上下文菜单的NSMenu对象.

您可以在Interface Builder中通过将NSMenu对象放入nib文件中进行控制,并将其从表视图拖动到菜单以设置插座.

或者,您可以使用NStableVIEw(继承自NSResponder)的-setMenu:方法以编程方式分配菜单.

总结

以上是内存溢出为你收集整理的Cocoa:当您右键单击NSTableView的单元格时,如何使用上下文菜单全部内容,希望文章能够帮你解决Cocoa:当您右键单击NSTableView的单元格时,如何使用上下文菜单所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存