У меня есть 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 нет.