右クリックされた行インデックスを取得する方法を探してNSTableView
いますが、デリゲート メソッドまたはクラス属性が見つかりません。どんな提案でも大歓迎です。
7632 次
5 に答える
23
NSTableViewメソッドを使用して- (NSInteger)clickedRow
、最後にクリックされた行のインデックスを取得します。返される NSInteger は、右クリックされた行のインデックスになります。
NSTableView
このソリューションをサブクラス化する必要はありません。clickedRow
も利用できますNSOutlineView
。
于 2013-02-07T15:42:55.583 に答える
11
私はこれを行っていませんが、NSView
のをオーバーライドすることでできると確信しています- (NSMenu*)menuForEvent:(NSEvent*)theEvent
。このリンクの例では、ポイント変換を行ってインデックスを決定しています。
-(NSMenu*)menuForEvent:(NSEvent*)theEvent
{
NSPoint mousePoint = [self convertPoint:[theEvent locationInWindow] fromView:nil];
int row = [self rowAtPoint:mousePoint];
// Produce the menu here or perform an action like selection of the row.
}
于 2012-09-19T12:37:26.940 に答える
3
サブクラスに実装menuForEvent:
して、右クリックで行を選択するだけです:NSTableView
@implementation MyTableView
- (NSMenu *)menuForEvent:(NSEvent *)theEvent
{
int row = [self rowAtPoint:[self convertPoint:theEvent.locationInWindow fromView:nil]];
if (row == -1)
return nil;
if (row != self.selectedRow)
[self selectRowIndexes:[NSIndexSet indexSetWithIndex:row] byExtendingSelection:NO];
return self.menu;
}
@end
于 2015-07-22T11:06:14.013 に答える