我正在使用NSScrollView来显示一个非常长的NSView,其宽度超过72000像素。当我拖动旋钮时它滚动得很好,并且它对scrollRectToVisible方法的响应也很好。
然后,我使用计时器从左到右更新NSScrollView。除非按空格键,否则一切运行良好。按空格键后,滚动视图将停止一段时间。当我按住空格键时,滚动视图将左右闪烁。
我想知道如何禁用nsscroll视图的空格键,因为我不想要任何空格键交互
我打开了NSTraceEvent,发现了以下日志:
2011-12-22 12:36:51.563 CIVideoDemoGL [255:a0f]收到的事件:KeyDown at:131.0,880.0 time:262523518000 flags:0x100 win:0 ctxt:af37 data:1,252,32,49,32 < / p>
2011-12-22 12:36:51.563 CIVideoDemoGL [255:a0f]在应用程序中:NSEvent:type = KeyDown loc =(0,944)time = 262.5 flags = 0x100 win = 0x0 winNum = 47 ctxt = 0xaf37 chars =“ “unmodchars =”“repeat = 1 keyCode = 49
2011-12-22 12:36:51.563 CIVideoDemoGL [255:a0f]在窗口中:NSEvent:type = KeyDown loc =(0,944)time = 262.5 flags = 0x100 win = 0x0 winNum = 47 ctxt = 0xaf37 chars =“ “unmodchars =”“repeat = 1 keyCode = 49
2011-12-22 12:36:51.564 CIVideoDemoGL [255:a0f] timeout = 62767682588.435905秒,mask = ffffffff,dequeue = 1,mode = kCFRunLoopDefaultMode
如何忽略nsscrollview的空格键向下事件?
答案 0 :(得分:0)
你应该继承NSScrollView
,覆盖-keyDown:
并在你的实现中忽略空格。
但是,我认为使用这么大的NSView
通常是不明智的。相反,您应该使用较小的NSView
并仅绘制您正在显示的内容的可见部分。您需要使用NSScroller
对象实现自己的滚动,但这会比巨大的NSView
提供更好的性能。