向Lona添加组件复制
如您所知,我决定继续为Lona做出更多贡献,本周早些时候,我有机会向该应用程序添加了新功能。 以下是我的贡献概述:
功能要求⚙️
用户通常会基于现有组件创建新组件,而唯一的方法是转到Finder并复制并粘贴组件文件。 因此,有一个功能请求,即向File Navigator添加组件复制支持。
首先,让我们看一下File Navigator中文件的上下文菜单:
我的任务是在上下文菜单中添加一个名为“ Duplicate As…”的新选项,选择该选项后,它将显示“保存”对话框。 用户键入文件名,选择文件的位置并按“保存”后,程序应在“组件编辑器”中打开一个新创建的组件。
链接到问题:
[Lona Studio]添加简单的组件复制·问题#355·airbnb / Lona
简介创建新组件时,通常以复制一个现有组件为起点。 有一个…… github.com
实施⚒
在FileNavigator
类中有一个功能menuForFile
,它创建了一个上下文菜单,这就是我需要放置新代码的地方:
// 检查所选文件是否具有“ .component”扩展名
如果 NSURL(fileURLWithPath:path).pathExtension ==“ component” {
menu.addItem(NSMenuItem(title:“ Duplicate As ...”,onClick:{
var saveURL:字符串
// 显示保存对话框
让对话框= NSSavePanel()
dialog.title =“保存.component文件”
dialog.showsResizeIndicator = true
dialog.showsHiddenFiles = false
dialog.canCreateDirectories = true
dialog.allowedFileTypes = [“ component”]
dialog.directoryURL = URL(fileURLWithPath:path).deletingLastPathComponent()
//用户取消了保存。 不要换出文件。
如果 dialog.runModal()!= NSApplication.ModalResponse.OK {
返回
}
守护 让 url = dialog.url else { return }
saveURL = url.path
//尝试复制文件。 如果成功,请在组件编辑器中打开文件。 否则,显示带有适当消息的警报。
做 {
尝试 FileManager.default.copyItem(atPath:path,toPath:saveURL)
} {
让警报= NSAlert()
alert.messageText =“无法将组件复制到\(saveURL)”
alert.addButton(withTitle:“确定”)
alert.runModal()
返回
}
自我 .onAction?(saveURL)
}))
}
结果
链接到PR:
修复#355:添加klymenkoo的组件复制支持·拉取请求#359·airbnb / Lona
此PR包含一个针对#355的修复程序。 它将新项目“ Duplicate as…”添加到上下文菜单。 如果用户选择此… github.com