【发布时间】:2011-05-31 11:36:53
【问题描述】:
我有一个带有自定义单元格的 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 没有。
【问题讨论】:
标签: cocoa contextmenu nstableview