要在Seesaw中为UI元素添加侦听器,请执行以下操作:
(listen ui-element :action (fn [_] (...)))
Run Code Online (Sandbox Code Playgroud)
listen
附加一个监听器,当:action
在`ui-element1上触发时调用提供的函数.它还返回一个函数.如果执行该函数,则会删除随原始调用添加的侦听器.
我一直在使用Seesaw在REPL中对UI进行原型设计,并且我没有保留返回值listen
.
如果我没有返回的函数,我该如何删除监听器?
您可以通过以下粗略的方式手动删除侦听器:
user=> (def b (button :text "HI"))
user=> (listen b :action #(alert % "HI!"))
user=> (-> (frame :content b) pack! show!)
; click the button, see the alert
; manually remove listeners
user=> (doseq [l (.getActionListeners b)] (.removeActionListener b l))
; click the button, nothing happens
Run Code Online (Sandbox Code Playgroud)
您可以将其放入辅助函数中并随时使用它。seesaw.event
以某种方式内置此功能seesaw.dev
也很好。欢迎补丁。:)
归档时间: |
|
查看次数: |
356 次 |
最近记录: |