【发布时间】:2015-12-01 06:00:35
【问题描述】:
我有一个自定义的 NSTextField,我想检测用户在文本字段中的双击。我的目标:我希望能够双击表达式中的括号,例如“(2+2) = 4”,并让它选择匹配括号内的所有内容。以为我可以这样做......
- (void)textView:(NSTextView *)textView doubleClickedOnCell:(id <NSTextAttachmentCell>)cell inRect:(NSRect)cellFrame atIndex:(NSUInteger)charIndex;
但它永远不会在我的自定义 NSTextField 中被调用。
然后我想我可以覆盖 -mouseDown,但这也没有被调用。我难住了。关于什么应该是一个易于实现的功能的任何建议。
谢谢!
菲利普
【问题讨论】:
-
- textView:doubleClickedOnCell:inRect:atIndex:在您的文本字段的delegate上调用,而不是在您的自定义 NSTextView 上。 -
文本字段是处理编辑的文本视图的代表(字段编辑器)。但无论如何,该方法仅适用于附件。
-
我的文本字段被调用 textView:menu:forEvent:atIndex: 和 textView:shouldChangeTextInRange:replacementString:,但不是 doubleClickedOnCell: 所以 Ken 是正确的,文本字段是文本视图的代表这是处理编辑(字段编辑器)。
-
也许您可以在作为自定义字段编辑器提供的
NSTextView的子类中覆盖mouseDown:。
标签: cocoa nstextfield double-click