1

on_activated应该被称为“当视图获得输入焦点时”(ST3 API docs)。cmd+control+p当我在 ST3 中切换到不同的项目/工作区时,on_activated会调用工作区/项目中的所有视图。所以它可能会被调用 10 次或更多。我发现这种行为出乎意料,并且只想为当前可见的视图打一个电话。那么,为什么不只为通过项目切换获得输入焦点的视图一次呢?任何解决方法?

谢谢!

编辑

这是代码。

import sublime_plugin

class TestPlugin(sublime_plugin.EventListener):
    count = 0

    def on_activated(self, view):
        self.count += 1
        print('"on_activated" event fired %ith time!' % self.count)
4

1 回答 1

1

检查当前激活的视图是否是您想要的视图。

import sublime_plugin

class TestPlugin(sublime_plugin.EventListener):
    count = 0

    def on_activated(self, view):
        if self.view.window().active_view().id() == view.id():
            print('"on_activated" successfully fired!')
        else:
            self.count += 1
            print('"on_activated": %i unsuccessful fired.' % self.count)
于 2016-11-22T00:39:07.173 回答