Предложение всплывающего меню drracket - PullRequest
1 голос
/ 18 июня 2011

Я использую графический набор инструментов 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 Ответ

1 голос
/ 19 июня 2011

Вы не хотите использовать popup-menu% здесь, это для тех контекстных меню, которые вы получаете при щелчке правой кнопкой мыши.Вместо этого вы должны просто создать новое окно (или, может быть, просто новое frame%, которое будет иметь соответствующие обратные вызовы для вставки предложений в основной frame%.

...