表 A-5 NSServices字典的關鍵字
關鍵字類型描述NSPortNameString該關鍵字指定了由您的應用程序監聽器為接受外部服務請求所提供的端口名稱。NSMessageString該關鍵字指定了用來調用該服務的實例方法名。在Objective-C中,實例方法的形式是messageName:userData:error:。在Java中,實例方法的形式是messageName(NSPasteBoard.String)。NSSendTypesArray該關鍵字指定了一組可以被該服務讀取的數據類型名。NSPasteboard類列出了幾個常用的數據類型。您必須包含此關鍵字,NSReturnTypes,或者兩者。NSReturnTypesArray該關鍵字指定了一組可以被該服務返回的數據類型名。NSPasteboard類列出了幾個常用的數據類型。您必須包含此關鍵字,NSSendTypes,或者兩者。NSMenuItemDictionary該關鍵字包含一個字典,它指定了加入Services菜單中的文本。字典中的唯一一個關鍵字被稱為default並且它的值是菜單項的文本。該值必須是唯一的。您可以使用斜槓“/”來指定一個子菜單。例如,Mail/Send出現在Services菜單中時就是一個帶有Send子菜單並且名為Mail的菜單。NSKeyEquivalentDictionary該關鍵字是可選的,並且包含一個含有用來請求服務菜單命令的快捷按鍵的字典。與NSMenuItem類似,字典中的唯一一個關鍵字被稱為default並且它的值是單個的字符。用戶可以通過按下Command,Shift功能鍵和相應的字符來請求該快捷按鍵。NSUserDataString該關鍵字是一個可選字符串,它含有您的選擇值。NSTimeoutString該關鍵字是一個可選的數字字符串,它指定了從應用程序請求服務到收到它的響應所需要等待的毫秒數。
啟動服務關鍵字
啟動服務關鍵字規定了Mac OS X中的應用程序是怎樣被啟動的。這些關鍵字適用於CFM和Mach-O可執行文件。有關CFM和Mach-O可執行文件的詳情可參見“安裝和集成”一章中的“CFM可執行文件”。表A-6列出了啟動服務的關鍵字。
表A-6啟動服務關鍵字
關鍵字類型是否必須摘要LSBackgroundOnlyStringNo指定了應用程序是否僅僅運行在後台。(僅適用於Mach-O的應用程序)。LSPrefersCarbonStringNo指定了應用程序是否優先運行在Carbon環境中。LSPrefersClassicStringNo指定了應用程序是否優先運行在Classic環境中。LSRequiresCarbonStringNo指定了應用程序是否必須運行在一個Carbon環境中。LSRequiresClassicStringNo指定了應用程序是否必須運行在一個Classic環境中。LSUIElementStringNo指定了應用程序是否是一個用戶界面組件,即一個應用程序不應該出現在Dock中或強制退出窗口。
LSBackgroundOnly
如果該關鍵字存在並且被設為“1”,啟動服務將只會運行在後台。您可以使用該關鍵字來創建無用戶界面的後台應用程序。如果您的應用程序使用了連接到窗口服務器的高級框架,但並不需要顯示出來,您也應該使用該關鍵字。後台應用程序必須被編譯成Mach-O可執行文件。該選項不適用於CFM應用程序。
您也可以指定該關鍵字的類型為Boolean或Number。然而,只有Mac OS X 10.2或以上的版本才支持這些類型的值。
LSPrefersCarbon
如果該關鍵字被設為“1”,Finder將會在顯示簡介面板中顯示“在Classic環境中打開”控制選項,缺省情況下該控件未被選中。如果需要,用戶可以修改這個控制選項來在Classic環境中啟動應用程序。
您也可以指定該關鍵字的類型為Boolean或Number。然而,只有Mac OS X 10.2或以上的版本才支持這些類型的值。如果您在您的屬性列表中加入了該關鍵字,那麼就不要同時加入LSPrefersClassic, LSRequiresCarbon,或LSRequiresClassic關鍵字。
LSPrefersClassic
如果該關鍵字被設為“1”,Finder將會在顯示簡介面板中顯示“在Classic環境中打開” 控制選項,缺省情況下該控件被選中。如果需要,用戶可以修改這個控制選項來在Carbon環境中啟動應用程序。
您也可以指定該關鍵字的類型為Boolean或Number。然而,只有Mac OS X 10.2或以上的版本才支持這些類型的值。如果您在您的屬性列表中加入了該關鍵字,那麼就不要同時加入LSPrefersCarbon, LSRequiresCarbon,或LSRequiresClassic關鍵字。
LSRequiresCarbon
如果該關鍵字被設為“1”,啟動服務將只在Carbon環境中運行應用程序。如果您的應用程序不應該運行在Classic環境中的話,可以使用該關鍵字。
您也可以指定該關鍵字的類型為Boolean或Number。然而,只有Mac OS X 10.2或以上的版本才支持這些類型的值。如果您在您的屬性列表中加入了該關鍵字,那麼就不要同時加入LSPrefersCarbon, LSPrefersClassic,或LSRequiresClassic關鍵字。
LSRequiresClassic
如果該關鍵字被設為“1”,啟動服務將只在Classic環境中運行應用程序。如果您的應用程序不應該運行在Carbon兼容環境中的話,可以使用該關鍵字。
您也可以指定該關鍵字的類型為Boolean或Number。然而,只有Mac OS X 10.2或以上的版本才支持這些類型的值。如果您在您的屬性列表中加入了該關鍵字,那麼就不要同時加入LSPrefersCarbon, LSPrefersClassic,或LSRequiresCarbon關鍵字。
LSUIElement
如果該關鍵字被設為“1”,啟動服務會將該應用程序作為一個用戶界面組件來運行。用戶界面組件不會出現在Dock或強制退出窗口中。雖然它們通常作為後台應用程序運行,但是如果希望的話,它們也可以在前台顯示一個用戶界面。點擊屬於用戶界面組件的窗口,應用程序將會處理產生的事件。
Dock和登錄窗口是兩個用戶界面組件應用程序
摘自 雲懷空-abel