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

时间:2012-03-21 21:22:10

标签: macos cocoa tableview

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

在iphone上有可靠的userInteractionEnabled等同物吗?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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];

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