MacOS开发 技术集锦OSX

OSX开发调起浏览器,App Store等外部资源

2017-04-11  本文已影响314人  云一程

NSWorkspace继承自NSObject,属于AppKit.framework。一个NSWorkspace对象可以启动其他应用程序和执行各种文件处理服务。

概述

每一个App中有个一个共享的 NSWorkspace
对象,可以使用类方法[sharedWorkspace
],例如, 下边的语句使用 NSWorkspace
对象请求一个可以被TextEdit App打开的文件:

[[NSWorkspace sharedWorkspace] openFile:@"/Myfiles/README"
withApplication:@"TextEdit"];

你可以使用workspace对象做这样几件事:
1.打开, 操作, 获取关于files与devices的信息
2.跟踪文件系统的改变,设备和用户数据库
3.获取或者设置文件Finder信息
4.启动APP

遗留的常量

表1,描述了包含关于应用程序的信息的NSDictionary对象所有的 keys 。NSDictionary被activeApplication和launchedApplications返回,也是NSWorkspace通知应用程序启动和终止提供的用户信息。注意,这些常量被认为是遗留的。

注意

强烈建议您在应用target macOS 10.6和以后,使用NSWorkspace类的runningApplications方法和NSRunningApplication类方法去检索这些信息,而不是使用activeApplication和launchedApplications方法。

表 1
用户信息字典的keys,通知应用启动与终端方法activeApplication 和 launchedApplications的用户信息字典的keys

@"NSApplicationPath"

app的全路径,一个NSString对象

@"NSApplicationName"

app的名称,一个NSString对象

@"NSApplicationBundleIdentifier"

app的bundle identifier,一个NSString对象

@"NSApplicationProcessIdentifier"

object. app的进程id,一个NSNumber对象

@"NSApplicationProcessSerialNumberHigh"

高长度的进程序列号(PSN),一个NSNumber对象

@"NSApplicationProcessSerialNumberLow"

低长度的进程序列号(PSN), 一个NSNumber对象

符号
访问共享NSWorkspace实例

打开文件

操作应用程序

操作文件

操纵统一类型标识符信息 Uniform Type Identifier

请求的信息

管理图标

卸载设备

管理Bundles

管理桌面图片

执行Finder Spotlight搜索

Finder文件标签

@property(readonly, copy) NSArray<NSColor *> *fileLabelColors; 返回相应文件在颜色数组中的文件标签

fileLabels 返回标签的数组

跟踪文件系统的改变

注销前请求额外的时间

支持可访问性

@property(readonly) BOOL accessibilityDisplayShouldDifferentiateWithoutColor; 一个布尔值,该值指示应用程序是否应避免通过单独的颜色展示信息。
@property(readonly) BOOL accessibilityDisplayShouldIncreaseContrast; 一个布尔值,该值指示应用程序是否应该显示高对比度的用户界面。
@property(readonly) BOOL accessibilityDisplayShouldReduceTransparency; 一个布尔值,该值指示应用程序是否该避免使用半透明的背景。

废弃的方法

Notifications

所有的NSWorkspace
通知 都是被 NSWorkspace
对象自己的通知中心POST, 不是app的默认notification center. 通过NSWorkspace
对象的 notificationCenter
属性访问通知中心.
NSWorkspaceWillLaunchApplicationNotification 当Finder将要启动一个app时发送
NSWorkspaceDidLaunchApplicationNotification 当一个新app已经启动时发送
NSWorkspaceDidTerminateApplicationNotification 当app停止运行时发送
NSWorkspaceSessionDidBecomeActiveNotification 切换用户会话时候发送
NSWorkspaceSessionDidResignActiveNotification 切换出用户会话前发送
NSWorkspaceDidHideApplicationNotification 当Finder隐藏一个app时发送
NSWorkspaceDidUnhideApplicationNotification 当Finder显示隐藏app时发送
NSWorkspaceDidActivateApplicationNotification 当Finder将要激活app时发送
NSWorkspaceDidDeactivateApplicationNotification 当Finder停止app时发送
NSWorkspaceDidRenameVolumeNotification 当卷改变名称 或者更改挂载路径时发送,这些通常会同时更改,只发送一次通知
NSWorkspaceDidMountNotification 当新设备挂在时发送
NSWorkspaceWillUnmountNotification 当Finder将要卸载设备时发送
NSWorkspaceDidUnmountNotification 当Finder已经卸载设备时发送
NSWorkspaceDidPerformFileOperationNotification 当文件操作已经被接收app执行时发送
NSWorkspaceDidChangeFileLabelsNotification 当Finder文件标签或者颜色改变时发送
NSWorkspaceActiveSpaceDidChangeNotification 当发生空间变化时发送
NSWorkspaceDidWakeNotification 当机器从睡眠中唤醒后发送
NSWorkspaceWillPowerOffNotification 当用户请求注销或者机器已经断电时发送
NSWorkspaceWillSleepNotification 机器休眠前发送
NSWorkspaceScreensDidSleepNotification 机器锁屏前发送
NSWorkspaceScreensDidWakeNotification 机器解锁屏幕后发送
NSWorkspaceAccessibilityDisplayOptionsDidChangeNotification 当任何辅助功能显示选项更改时发送

实例属性

@property(readonly) BOOL accessibilityDisplayShouldInvertColors;
@property(readonly) BOOL accessibilityDisplayShouldReduceMotion;

实例方法

原文:NSWorkspace - AppKit | Apple Developer Documentation

上一篇 下一篇

猜你喜欢

热点阅读