按惯例,Demo 点这里,如果能帮到你,就点个 ⭐️ ⭐️ ⭐️
NSSharingService
NSSharingService 用于 macOS 中的分享功能,支持分享 NSURL、NSString、NSImage、视频(通过文件URL)或任何实现 NSPasteboardWriting 协议的对象。
这里直接就上代码:
@IBAction func sendMail(_ sender: NSButton) {
// send email
let service = NSSharingService(named: .composeEmail)
service?.delegate = self
service?.recipients = ["email@email.com"]
service?.subject = "Subject"
if let service = service, service.canPerform(withItems: ["this is text content"]) {
service.perform(withItems: ["this is text content"])
} else {
print("can't perform item")
}
}
NSSharingService 通过 name 来创建一个 service,苹果本身已经提供好一些常用的分享项目:

这里选择了分享到邮件,可以通过 recipients 和 subject 来设置邮件的发送地址和标题,然后通过 perform 来进行分享。实现的效果如下:

NSSharingServicePicker
NSSharingServicePicker 类提供了一个分享服务列表,以便用户可以选择一个服务来分享内容。 这里直接上效果图:

实现代码如下:
@IBAction func share(sender: NSButton) {
let image = NSImage(named: NSImage.Name(rawValue: "code.jpg"))
let picker = NSSharingServicePicker(items: [image!])
picker.delegate = self
picker.show(relativeTo: .zero, of: sender, preferredEdge: .minY)
}
NSSharingServicePicker 实质上就相当于 iOS 开发中的 UIActivityViewController,给用户提供一个分享列表,用户可以选择相应的项目进行分享。
网友评论