Macos 如何停止NSTextField阻止对NSTableView行的右键单击?

Macos 如何停止NSTextField阻止对NSTableView行的右键单击?,macos,cocoa,tableview,Macos,Cocoa,Tableview,正如标题所示,我已经为自定义行的tableview启用了右键单击。只要有NSTextField,它就会阻止右键单击 iphone上是否有类似cocoa的userInteractionEnabled等价物?我可以右键单击基于自定义视图的表格视图单元格中的文本字段。以下是我如何配置它: NSTextField *tf = [[NSTextField alloc] initWithFrame:NSZeroRect]; self.textField = tf; self.imageView.auto

正如标题所示,我已经为自定义行的tableview启用了右键单击。只要有
NSTextField
,它就会阻止右键单击


iphone上是否有类似cocoa的
userInteractionEnabled
等价物?

我可以右键单击基于自定义视图的表格视图单元格中的文本字段。以下是我如何配置它:

NSTextField *tf = [[NSTextField alloc] initWithFrame:NSZeroRect];

self.textField = tf;

self.imageView.autoresizingMask=NSViewWidthSizable;
self.textField.editable=NO;
self.textField.selectable=NO;
self.textField.drawsBackground=NO;
self.textField.bordered=NO;
self.textField.bezeled=NO;
self.textField.target=self;
self.textField.action=@selector(textDidEndEditing:);
[self.textField.cell setLineBreakMode:NSLineBreakByTruncatingMiddle];

另外,请确保设置的是
NSTableView
-menu
属性,而不是要启用菜单的单元格视图。(我不知道这是否会对您的问题产生影响,但这是我在表视图中右键单击的方式。)

我可以在基于视图的自定义表视图单元格中的文本字段上单击鼠标右键。以下是我如何配置它:

NSTextField *tf = [[NSTextField alloc] initWithFrame:NSZeroRect];

self.textField = tf;

self.imageView.autoresizingMask=NSViewWidthSizable;
self.textField.editable=NO;
self.textField.selectable=NO;
self.textField.drawsBackground=NO;
self.textField.bordered=NO;
self.textField.bezeled=NO;
self.textField.target=self;
self.textField.action=@selector(textDidEndEditing:);
[self.textField.cell setLineBreakMode:NSLineBreakByTruncatingMiddle];

另外,请确保设置的是
NSTableView
-menu
属性,而不是要启用菜单的单元格视图。(我不知道这是否会对您的问题产生影响,但这是我在表视图中右键单击的方式。)

我认为我可能需要对我的
NSTableCellView
子类中的所有内容进行子类化,但我只需要覆盖
-(NSView*)命中测试:(NSPoint)在我的
NSTableCellView
子类中的aPoint
方法返回self。

我认为我可能需要对我的
NSTableCellView
子类中的所有内容进行子类化,但我只需要覆盖
-(NSView*)hitTest:(NSPoint)我的
NSTableCellView
子类中的aPoint
方法返回self。

我必须将tableviewcell子类化,并覆盖menuForEvent以获得右键单击以使其正常工作。为tableview.menu设置菜单没有为我启用右键单击。我在interface builder中设置了菜单,如果这意味着什么的话。我必须为tableviewcell子类化,并重写menuForEvent以获得右键单击才能正常工作。为tableview.menu设置菜单没有为我启用右键单击。我在interface builder中设置了菜单,如果这意味着什么的话。