如何在NSTextView中覆盖3指点击行为?

zne*_*eak 11 macos cocoa-touch

在Mac OS X上,对一个单词进行三指点击会弹出一个带有该单词定义的窗口.

显示弹出窗口的图象显示词定义.

这个成语也用在Xcode中,在符号上用三指点击显示其文档,就像它已被alt +点击一样.

图像显示弹出窗口显示符号文档.

我想做类似的事情并在我的应用程序的用户用三指点击某个令牌时显示定义NSTextView.但是,我找不到如何检测用3个手指完成敲击.有人可以帮助我吗?

编辑如果这会向任何人提醒任何内容,[NSApplication sendEvent:]当您执行此类操作时会触发三个事件(由覆盖捕获):

NSEvent: type=SysDefined loc=(270.918,250.488) time=417954.6 flags=0x100 win=0x0 winNum=28293 ctxt=0x0 subtype=6 data1=1818981744 data2=1818981744
NSEvent: type=SysDefined loc=(270.918,250.488) time=417954.6 flags=0x100 win=0x0 winNum=28293 ctxt=0x0 subtype=9 data1=1818981744 data2=1818981744
NSEvent: type=Kitdefined loc=(0,263) time=417954.8 flags=0x100 win=0x0 winNum=28306 ctxt=0x0 subtype=4 data1=1135411200 data2=1132691456
Run Code Online (Sandbox Code Playgroud)

zne*_*eak 8

NSTextView通过覆盖可以最轻松地对罐中的三重敲击做出反应quickLookWithEvent:.

-(void)quickLookWithEvent:(NSEvent *)event
{
    NSLog(@"Look at me! %@", event);
}
Run Code Online (Sandbox Code Playgroud)

它还告诉我你可以三倍点击任何东西来调用它上面的快速查看.