【问题标题】:Delete all observers on Sketchup.active_model.shadow_info删除 Sketchup.active_model.shadow_info 上的所有观察者
【发布时间】:2015-08-24 07:40:25
【问题描述】:

有没有办法删除所有收听Sketchup.active_model.shadow_info的观察者?

类似Sketchup.active_model.shadow_info.remove_all_observers()

【问题讨论】:

    标签: ruby sketchup


    【解决方案1】:

    恐怕不会。如果可能的话,您将删除其他扩展的观察者并导致这些扩展出现各种问题。

    我猜这是为了方便开发?您有时会在哪里添加多个观察者?

    我使用的模式是始终保留对我附加的观察者实例的引用,然后有一个包装函数尝试在再次附加之前将其删除。

    module Example
    
      def.attach_shadow_observer
        model = Sketchup.active_model
        model.shadow_info.remove_observer(@shadow_observer) if @shadow_observer
        @shadow_observer = MyShadowObserver.new
        model.shadow_info.add_observer(@shadow_observer)
      end
    
    end
    

    这是一个非常幼稚和简单的例子。您可能会发现创建一个管理器很方便,这样您就不必为您附加的每个观察者创建特定的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多