题记:
第一次接触MAC的开发.....
Dock也是第一次听说,但弄明白后,这个东西就类似windows的任务栏。
这个Dock可以挂载一个叫NSDockTilePlugIn的
bundle,开发这个类似很多OSGI模型开发bundle一样,继承NSDockTilePlugIn,然后你实现相应的methods,完之后build出来放到指定的目录下,然后在某个特定的“动作”的时候会自动调用这些methods。
写道
The Dock tile plug-in must be placed inside the Contents/PlugIns directory of your application’s package. The plug-in is associated with the application by adding a NSDockTilePlugIn key to the application’s information property list. The value associated with this key is the name of the plug-in’s bundle, which must end with a .docktileplugin extension.
The principal class of the plug-in must implement the NSDockTilePlugIn protocol. The setDockTile: method is the only required method in this protocol. When the plug-in is loaded, an object of the principal class is instantiated, and its setDockTile: method is called. The call to this method provides an NSDockTile object to your plug-in. Your plug-in should retain the Dock tile object and perform any other initialization required by your plug-in. For example, if your plug-in receives information from a background-only application, it can register for a notification event sent by that other application.
Your Dock tile plug-in continues to run as long as your application’s tile is in the Dock, even if your application is actually running. Apple recommends that you update your Dock tile in either the application or the plug-in, but not both at the same time. Your application can continue to update the Dock tile inside your plug-in by having the plug-in receive notifications from your application. If both the application and the plug-in update the dock tile, the application takes precedence.
When your application is removed from the Dock, the setDockTile: method is called with a nil parameter. Your setDockTile: method should release the Dock tile object, clean up any resources your Dock Tile plug-in allocated, and exit.
这段主要内容是:
1,build后的bundle必须放到你app下的Contents/PlugIns下,且必须在property list文件中申明,其中内容为.docktileplugin结尾的插件名。
2,插件必须扩展NSDockTilePlugI,当插件加载的时候, setDockTile方法就会被执行,并且返回一个NSDockTile,你可以在这里做些其他初始化工作。
3,你的插件和主程序可以同时updateDock title,但主程序的优先级更高。
4,当你的application 从dock去除的时候,会把NSDockTile指向nil,在Object-C中指向nil的对象是自动释放内存并把指针指向NULL。
Dock Plugin 主要做几个工作:
1,其中更改dock上application的图标。
写道
Dock tile icons can be customized using an NSView object. This is useful if your application needs to dynamically generate Dock tile icons at run time. To provide a custom view, you instantiate a new view object, retrieve the dock tile object from the application or window object, and set your view as its contentView.
myView = [[[MyViewClass alloc] init] autorelease];
[[NSApp dockTile] setContentView: myView];
When the Dock icon needs to be updated, you instruct the Dock to update the icon by calling the dock tile object’s display method.
[[NSApp dockTile] display];
2,更改badge:
写道
The dock tile object can overlay a short text message on top of the Dock icon. To change the badge label, you call the Dock tile’s setBadgeLabel: method.
[[myWindow dockTile] setBadgeLabel:@"42"];
3,定义自己的menu:
写道
Your class can optionally provide a dockMenu method to provide additional custom menu items. This method works similarly to the applicationDockMenu: method provided by the application delegate. Mac OS X calls your plug-in’s dockMenu method when the user requests the menu for your Dock tile.
问题1:
Apple的官方文档说.docktileplugin要放到Contents/PlugIns目录下,可实现起来未必,我实践的时候放到了Resources目录下。
问题2:
设定Info.plist的时候注意key放到大概第一个<dict>下,类似:<dick><key>xxx</key><string>yyy</string></dick>
Good Luck:)
详情:http://developer.apple.com/library/mac/#documentation/Carbon/Conceptual/customizing_docktile/CreatingaDockTilePlug-in/CreatingaDockTilePlug-in.html#//apple_ref/doc/uid/TP30000986-CH4-SW1
分享到:
相关推荐
在本文中,我们将深入探讨“AboutPlugin”插件的原理与应用,以及如何利用Qt的插件系统来实现自定义功能。 首先,我们要理解什么是Qt插件。在Qt中,插件是一种动态链接库(DLL或.so文件),它们可以在运行时被应用...
mac hadoop-eclipse-plugin-2.7.7
Apache Tomcat Maven Plugin - About Apache Tomcat Maven Plugin
Citrix Online Plugin Web 安装程序
- **操作系统**:适用于Windows、Mac OS及部分Linux发行版。 - **硬件要求**:需具备足够的CPU和内存资源,以及支持硬件加速的图形处理器。 4. **安装与使用** - 下载“webplugin海康网站视频插件.exe”文件,...
环境配置是:hadoop 2.4.0+ eclipse 4.3.2+mac os+10.9.4 eclipse插件
ROS QTC Plugin是专门为ROS设计的一个QT Creator插件,它使开发者能够在QT Creator中直接进行ROS项目的创建和管理。本文将详细介绍如何安装ROS QTC Plugin以及如何运行相关包。 首先,我们需要安装QT Creator。在...
每个Maven Plugin通常包含多个目标,例如,`maven-compiler-plugin`用于Java源代码的编译,`maven-surefire-plugin`负责运行单元测试。开发者可以根据项目需求选择并配置相应的插件。 二、Maven Plugin的使用 在...
** Maven Jetty Plugin 知识点详解 ** Maven Jetty Plugin是一款强大的工具,它将Jetty服务器集成到了Maven的构建流程中。这个插件允许开发者在开发过程中快速、便捷地运行和测试Java Web应用程序,而无需进行完整...
unity3d资源,超酷的粒子特效,支持Windows、Mac和Linux
《对比插件ComparePlugin在Notepad++中的应用与安装指南》 在文本编辑器的世界里,Notepad++凭借其开源、免费以及强大的功能,深受程序员和文本工作者的喜爱。而为了进一步提升其功能,用户可以安装各种插件,比如...
《NotePad++插件AnalysePlugin深度解析》 在编程世界中,文本编辑器是开发者不可或缺的工具之一,NotePad++作为一款免费且强大的源代码编辑器,深受程序员喜爱。其丰富的插件库更是增强了其功能性和灵活性。本文将...
《大华视频控件WebPlugin详解及安装指南》 大华视频控件WebPlugin是一款专为互联网环境设计的多媒体插件,主要用于在IE浏览器中实现流畅的视频播放和监控功能。该控件由大华公司开发,是其监控系统的重要组成部分,...
### Tangram Plugin Framework安装与配置Delphi XE2开发环境详解 #### 一、概述 Tangram Plugin Framework是一款专为Delphi设计的插件框架,它能够帮助开发者轻松地构建可扩展的应用程序。本文将详细介绍如何在...
"video-speed-plugin.rar" 是一个包含此类插件的压缩包文件,可能是为了解决特定平台,如Mac系统上无法正常使用的问题。 这个插件的开发者已经对原有版本进行了修改,以确保它可以在Mac操作系统上运行。这可能涉及...
赠送jar包:spring-plugin-core-2.0.0.RELEASE.jar; 赠送原API文档:spring-plugin-core-2.0.0.RELEASE-javadoc.jar; 赠送源代码:spring-plugin-core-2.0.0.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring...
标题中的"plugin.video."表明这是一个Kodi(原名XBMC)插件,Kodi是一款开源的媒体中心软件,允许用户播放、管理以及享受各种多媒体内容。插件是Kodi生态系统的重要组成部分,它们扩展了Kodi的功能,使其能够访问...
《MyBatis Plugin在IDEA 2017中的应用与问题解决》 在Java开发领域,MyBatis是一款广泛使用的持久层框架,它简化了数据库操作,使得开发者能够更加专注于业务逻辑。为了提高开发效率,IntelliJ IDEA(简称IDEA)...
最新Unity插件SteamVR Plugin steamvr_2_8_0.unitypackage最新Unity插件SteamVR Plugin steamvr_2_8_0.unitypackage最新Unity插件SteamVR Plugin steamvr_2_8_0.unitypackage最新Unity插件SteamVR Plugin steamvr_2_...
Maven 使用 tomcat8-maven-plugin 插件 Maven 是一个流行的构建自动化工具,它可以帮助开发者自动完成项目的编译、测试、打包、部署等任务。 Tomcat 是一个流行的 Web 服务器,Maven 提供了一个插件 tomcat8-maven-...