드래그 앤 드롭 으로 구현을 하려고 했는데 너무 러닝 커브가 커서 파일 열기 다이얼로그로 작성을 했다.
코드 스니핏
import Cocoa
func openDialog(_ sender: Any) {
let panel = NSOpenPanel();
panel.canChooseFiles = true;
panel.canChooseDirectories = true;
panel.resolvesAliases = false;
panel.allowsMultipleSelection = true;
if (panel.runModal() == NSApplication.ModalResponse.OK) {
if (panel.urls.count > 0) {
for url in panel.urls {
print(url.path)
}
}
}
}
관련 문서들
Apple Deloper - NSOpenPanel
macOS 10.15(Catalina) 이후에는 앱이 sandboxed 와 관계없이 별도의 프로세스에서 동작하게 되는 것으로 바뀌었다고 한다.
버전 관련 호환성
NSOpenPanel의 isAccessoryViewDisclosed 는 10.11(El Capitan) 이후에서만 지원이 된다.
URL의 hasDirectoryPath의 경우 10.11+ 에서 지원이된다.
for url in panel.urls {
print(url.hasDirectoryPath)
print(url.path)
}
'Programing > My OSS' 카테고리의 다른 글
[Cocoa] 메뉴의 응답을 Controller에서 받게 하기 (0) | 2020.10.03 |
---|---|
[Swift] String test in PlayGround (0) | 2020.10.03 |
[GetTogether] macOS 용 자소교정기 - 발단 (0) | 2020.07.11 |
[Hours] 1.4 update - ComboBox (0) | 2019.11.16 |
[Swift] Hours 5 - v1.2.1 : viewDidAppear (0) | 2019.10.16 |