问题描述
|
即时通讯使用了Racket图形工具包,并且我试图显示建议弹出菜单。
我有可供选择的字符串列表,我想在您在文本字段中编写文本时在弹出菜单中显示它们。
我设法显示它们,但是您必须重新选择文本字段才能继续书写。每次选择文本字段时,弹出菜单都会消失。
这有可能吗?如果是这样,我该如何实现?
这是一个可以更好地说明自己的小例子:
(define (prueba)
(let* ((ventana (new frame% (label \"\")))
(sugerencia (new popup-menu%))
(texto (new text-field% (label \"prueba\")(parent ventana)
(callback (lambda (t e)
(new menu-item% (label (send t get-value))(parent sugerencia)
(callback (lambda (i e) (void))))
(send ventana popup-menu sugerencia (+ 50 (send t get-x)) (+(send t get-height)(send t get-y))))))))
(send ventana show #t)))
解决方法
您不想在此处使用ѭ1,这是通过右键单击获得的上下文菜单。相反,您应该只创建一个新窗口(或者可能只是一个新的
frame%
,它将具有适当的回调以将建议插入到主frame%
中。