CINXE.COM
Introduction
<!DOCTYPE html> <html lang="en"> <head> <title>Introduction</title> <meta http-equiv="X-UA-Compatible" content="IE=7"> <meta charset="utf-8"> <meta id="book-resource-type" name="book-resource-type" content="Guide"> <meta scheme="apple_ref" id="identifier" name="identifier" content="//apple_ref/doc/uid/10000101i"> <meta id="document-version" name="document-version" content="3.4.1"> <meta id="build" name="build" content="c1e4c7a89af8f899a21cfa81fc33ba42" /> <meta id="chapterId" name="chapterId" content="10000101"> <meta id="date" name="date" content="2016-09-13"> <meta id="description" name="description" content="Explains how Cocoa applications can extend their capabilities seamlessly to other applications."> <meta id="book-title" name="book-title" content="Services Implementation Guide"> <meta id="book-root" name="book-root" content="./"> <meta id="book-json" name="book-json" content="book.json"> <meta id="devcenter" name="devcenter" content="Mac Dev Center"> <meta id="devcenter-url" name="devcenter-url" content="http://developer.apple.com/devcenter/mac"> <meta id="reflib" name="reflib" content="Documentation Archive"> <meta id="book-assignments" name="book-assignments" content="{Type/Guide}, {Technologies/Cocoa Layer/AppKit}, {Topic/Data Management/Event Handling}"> <meta id="copyright" name="copyright" content="Copyright 2018 Apple Inc. All Rights Reserved."> <meta id="xcode-display" name="xcode-display" content="render"> <meta id="IndexTitle" name="IndexTitle" content="Services Implementation Guide: Introduction"> <meta id="resources-uri" name="resources-uri" content="../../../../Resources/1282"> <link id="book-index-page" rel="Start" title="Services Implementation Guide" type="text/html" href="index.html"> <link id="next-page" rel="Next" type="text/html" href="Articles/overview.html"> <link id="previous-page" rel="Prev" type="text/html" href=""> <link rel="stylesheet" type="text/css" href="../../../../Resources/1282/CSS/screen.css"> <!-- xcode_css --> <link rel="stylesheet" type="text/css" href="../../../../Resources/1282/CSS/feedback.css"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta id="platforms" name="platforms" content="OS X"> </head> <body><a name="//apple_ref/doc/uid/10000101" title="Introduction"></a> <div id="_omniture_top"> <!-- SiteCatalyst code version: H.8. Copyright 1997-2006 Omniture, Inc. --> <script type="text/javascript"> /* RSID: */ var s_account="awdappledeveloper" </script> <script type="text/javascript" src="https://developer.apple.com/assets/metrics/scripts/analytics.js"></script> <script type="text/javascript"> s.channel="www.documentationarchive.developer" /************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/ var s_code=s.t();if(s_code)document.write(s_code)</script> <!-- End SiteCatalyst code version: H.8. --> </div> <div id="adcHeader" class="hideOnPrint hideInXcode"> <div id='ssi_Header' class="hideInXcode unified"> <a id="ssi_LibraryTitle" href='../../../../navigation/'>Documentation Archive</a> <a id="ssi_AppleDeveloperConnection" href='https://developer.apple.com/'>Developer</a> <div id='ssi_SearchButton' role="button" title="Search">Search</div> </div> <form id='ssi_SearchMenu' method='get' action='../../../../search/' accept-charset='utf-8'> <label for='adcsearch'>Search Documentation Archive</label> <input type='search' id='ssi_SearchField' name='q' accesskey='s' results='5' /> </form> </div> <header id="header"> <div id="title" role="banner"> <h1>Services Implementation Guide</h1> <span id="file_links"> <a id="PDF_link" role="button" tabindex='4' rel="alternate" title="Download PDF"><span id="pdf_icon"></span>PDF</a> <a id="Companion_link" role="button" tabindex='3' title="Download Companion File"><span id="companion_icon"></span>Companion File</a> </span> </div> <ul id="headerButtons" class="hideOnPrint" role="toolbar"> <li id="toc_button" style="display:none"> <button tabindex="5" id="table_of_contents" class="open" role="checkbox" aria-label="Show Table of Contents"><span class="disclosure"></span>Table of Contents</button> </li> <li id="jumpto_button" style="display:none" role="navigation"><select tabindex="6" id="jumpTo"><option value="top">Jump To…</option></select></li> <li id="downloadSample_button" style="display:none"> <a id="Sample_link"><button id="Sample_button">Download Sample Code</button></a> </li> </ul> </header> <nav id="tocContainer" tabindex="7"> <ul id="toc" role="tree"></ul> </nav> <article id="contents" tabindex="0" role="main"> <div id="pageNavigationLinks_top" class="pageNavigationLinks"> <a class='nextLink' rel='next' href='Articles/overview.html'>Next</a> </div> <a id="top" name="top"></a> <a id="INDEX" href="index.html" style="display:none;"></a> <a name="//apple_ref/doc/uid/10000101i" title="Introduction"></a><a name="//apple_ref/doc/uid/10000101-SW1" title="Introduction"></a><h1 id="pageTitle">Introduction</h1><a name="//apple_ref/doc/uid/10000101-DontLinkElementID_2"></a><div class="notebox"><aside><a name="//apple_ref/doc/uid/10000101-SW3" title="Note"></a><p><strong>Note:</strong> This document was previously titled <em>System Services</em>.</p><p></p></aside></div><p>Services are features exported by your application for the benefit of other applications. Services let you share the resources and capabilities of your application with other applications in the system.</p><p>Users access services through the Services menu that鈥檚 found in every application鈥檚 application menu. An application does not need to know in advance what operations are available; the application merely needs to indicate the types of data it uses. The Services menu will make available the operations that apply to those types when they apply.</p><p>This document describes how OS X services work, shows some typical Services menus, and provides instructions on how you can use services in your application.</p><a name="//apple_ref/doc/uid/10000101-SW2" title="Who Should Read This Document?"></a><h2 class="jump">Who Should Read This Document?</h2><p>You should read this document if you are a Cocoa application developer and want to provide your application鈥檚 services to other applications or make services from other applications available to your application.</p><section><a name="//apple_ref/doc/uid/10000101-SW4" title="Prerequisites"></a><h2 class="jump">Prerequisites</h2><p>Before you read this document, you should be familiar with information property lists. You need to know what they are and how to add properties to a list. For more information, see <span class="content_text"><a href="../../../MacOSX/Conceptual/BPRuntimeConfig/Articles/ConfigFiles.html#//apple_ref/doc/uid/20002091" data-renderer-version="1" target="_self">Information Property List Files</a></span> in <em><a href="../../../MacOSX/Conceptual/BPRuntimeConfig/000-Introduction/introduction.html#//apple_ref/doc/uid/10000170i" data-renderer-version="1" target="_self">Runtime Configuration Guidelines</a></em>.</p><p>For guidelines on naming menu items and for designing the interface for a services application, see <em><!--a target="_self" -->OS X Human Interface Guidelines<!--/a--></em>.</p></section><a name="//apple_ref/doc/uid/10000101-DontLinkElementID_3" title="Organization of This Document"></a><h2 class="jump">Organization of This Document</h2><p>Read the first three chapters to learn how services work, see examples of services in applications, and learn which properties you use to provide and use services in your applications. The remaining two chapters describe in detail how to provide and use services in your applications.</p><section><a name="//apple_ref/doc/uid/10000101-SW5" title="Changes for OS X v10.6"></a><h2 class="jump">Changes for OS X v10.6</h2><p>The Services feature was updated in OS X version 10.6 with the following changes and additions to properties:</p><ul class="ul"><li class="li"><p>A slash is no longer treated as specifying a submenu with <code>NSMenuItem</code>.</p></li><li class="li"><p><code>NSSendTypes</code> and <code>NSReturnTypes</code> no longer need to be specified.</p></li><li class="li"><p>There are three new properties: <code>NSSendFileTypes</code>, <code>NSServiceDescription</code>, and <code>NSRequiredContext</code>.</p></li></ul></section> <div id="pageNavigationLinks_bottom" class="pageNavigationLinks"> <a class='nextLink' rel='next' href='Articles/overview.html'>Next</a> </div><br/> <div class="copyright"><br/><hr /><div align="center"><p class="content_text" lang="en" dir="ltr"> Copyright © 2003, 2016 Apple Inc. All Rights Reserved. <a href="http://www.apple.com/legal/internet-services/terms/site.html" target="_blank">Terms of Use</a> | <a href="http://www.apple.com/privacy/" target="_blank">Privacy Policy</a> | Updated: 2016-09-13</p></div></div> <div id="pediaWindow"> <div id="pediaHeader"></div> <div id="pediaBody"></div> </div> </article> <div id="blackout"> <div id="preload"></div> </div> <div id="modal" aria-hidden="true"> <div id="closebox" tabindex="0" aria-label="Close feedback form" role="button"></div> <div id="sending" class="hidden"> <h2 tabindex="0">Sending feedback…</h2> <div id="sending_img"></div> </div> <div id="error" class="hidden"> <h2 tabindex="0">We’re sorry, an error has occurred.</h2> <p>Please try submitting your feedback later.</p> <div id="error_icon"></div> </div> <div id="success" class="hidden"> <h2 tabindex="0">Thank you for providing feedback!</h2> <p>Your input helps improve our developer documentation.</p> <div id="thank_you_icon"></div> </div> <form id="feedback" action="#" method="post"> <div class="left-leaf"> <h2 id="helpful_title" data-asterisk="a1" tabindex="0">How helpful is this document?</h2> <sup id="a1" class="asterisk" aria-hidden="true">*</sup> <div id="star_group" role="radiogroup" aria-required="true"> <label> <input class="radio" type="radio" name="helped" value="1" /> Very helpful </label> <label> <input class="radio" type="radio" name="helped" value="2" /> Somewhat helpful </label> <label> <input class="radio" type="radio" name="helped" value="3" /> Not helpful </label> </div> </div> <div class="right-leaf"> <h2>How can we improve this document?</h2> <div id="improve" class="checkboxes"> <label> <input type="checkbox" name="typo" /> Fix typos or links </label> <label> <input type="checkbox" name="infoIncorrect" /> Fix incorrect information </label> <label> <input type="checkbox" name="needs_examples" /> Add or update code samples </label> <label> <input type="checkbox" name="needs_art" /> Add or update illustrations </label> <label> <input type="checkbox" name="missingInfo" /> Add information about... </label> </div> </div> <textarea id="comment" name="problem" cols="70" rows="8" placeholder="Please tell us more about your experience with this document" data-asterisk="a2" required></textarea> <sup id="a2" class="asterisk" aria-hidden="true">*</sup> <p class="fineprint"> <em aria-hidden="true"><span>*</span> Required information</em> </p> <input id="submit" type="button" value="Send" /> <section id="legal"> <p> To submit a product bug or enhancement request, please visit the <a href="https://developer.apple.com/bugreporter/" target="_blank">Bug Reporter</a> page. </p> <p> Please read <a href="http://www.apple.com/legal/policies/ideas.html" target="_blank">Apple's Unsolicited Idea Submission Policy</a> before you send us your feedback. </p> </section> </form> </div> <script charset="utf-8" src="../../../../Resources/1282/JavaScript/lib/prototype.js"></script> <script src="../../../../Resources/1282/JavaScript/library.js"></script> </body> </html>