【问题标题】:how to add a menu into the Safari MenuBar or add a button into it's MainWindow?如何将菜单添加到 Safari 菜单栏或将按钮添加到其主窗口?
【发布时间】:2009-09-18 17:38:06
【问题描述】:

我想用 Safari 开发一个插件。现在我要做一个演示,在它的 MainWindow 中添加一个按钮或在它的 MenuBar 中添加一个菜单。我已经看过 Document WebKitPluginProgTopic 和 sample:/Developer/Examples/Webkit/WebKitMoviePlugIn 。但他们并没有说明用 safari 制作插件的完整过程,以及如何在 safari 窗口中添加一些菜单或按钮。有人可以给我一些建议或简单的代码来解决这个问题,非常感谢!

【问题讨论】:

    标签: cocoa


    【解决方案1】:

    插件架构并不是为了增强浏览器,而是为了支持特殊的媒体格式,如 flash 或 quicktime。问题是插件只有在找到对应的媒体类型时才会加载。

    Agile Web Solutions 找到了一种方法来加载1Password 中的所有站点的插件并将代码插入 Safari。他们已将其记录在 their blog 中。有关注入代码的其他方法,请查看以下问题:InputManager plug-ins in Snow Leopard

    我没有任何以编程方式构建菜单的经验,但它应该像这样工作:

    NSMenu *newMenu = [[[NSMenu alloc] initWithTitle:@"MyMenu"] autorelease];
    NSMenu *mainMenu = [NSApp mainMenu];
    [mainMenu addItem:newMenu];
    

    更换窗户并不容易。您的最佳猜测可能是 [NSApp orderedWindows],它仅用于脚本目的,但应该对您的任务有用。

    【讨论】:

    • 值得注意的是,完全不支持改变 Safari 用户界面的插件,正如您所指出的,使它们工作的唯一方法是通过极端的黑客攻击。每当 Safari 更新时,您的 hacky 插件都可能(并且可能会)中断。
    猜你喜欢
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    • 2019-02-02
    • 1970-01-01
    • 2011-11-01
    • 1970-01-01
    相关资源
    最近更新 更多