From 80a0bf1bd5156a439f916a3a08b1f560e7e032f1 Mon Sep 17 00:00:00 2001 From: Louis Date: Wed, 8 Nov 2023 17:52:58 +0100 Subject: [PATCH] feat: :sparkles: Add contextual menu for copy-paste --- BinaryConverter.xcodeproj/project.pbxproj | 8 ++++---- BinaryConverter/AnyBaseConverter.swift | 8 ++++++++ BinaryConverter/BinaryConverter.swift | 8 ++++++++ BinaryConverter/HexaConverter.swift | 9 +++++++++ 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/BinaryConverter.xcodeproj/project.pbxproj b/BinaryConverter.xcodeproj/project.pbxproj index 1a69a75..87366b4 100644 --- a/BinaryConverter.xcodeproj/project.pbxproj +++ b/BinaryConverter.xcodeproj/project.pbxproj @@ -13,8 +13,8 @@ 2CCE3EA32AF678B300BB0ED3 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2CCE3EA22AF678B300BB0ED3 /* Assets.xcassets */; }; 2CCE3EA62AF678B300BB0ED3 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2CCE3EA52AF678B300BB0ED3 /* Preview Assets.xcassets */; }; 2CCE3EAD2AF67A9000BB0ED3 /* UtilsFunctions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCE3EAC2AF67A9000BB0ED3 /* UtilsFunctions.swift */; }; - 2CCE3EAF2AF67BA900BB0ED3 /* BinaryConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCE3EAE2AF67BA900BB0ED3 /* BinaryConverter.swift */; }; 2CCE3EB12AF67CFD00BB0ED3 /* HexaConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CCE3EB02AF67CFD00BB0ED3 /* HexaConverter.swift */; }; + 2CEC5C712AFBF09800A6DEB3 /* BinaryConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CEC5C702AFBF09800A6DEB3 /* BinaryConverter.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -25,8 +25,8 @@ 2CCE3EA22AF678B300BB0ED3 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 2CCE3EA52AF678B300BB0ED3 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; 2CCE3EAC2AF67A9000BB0ED3 /* UtilsFunctions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UtilsFunctions.swift; sourceTree = ""; }; - 2CCE3EAE2AF67BA900BB0ED3 /* BinaryConverter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BinaryConverter.swift; sourceTree = ""; }; 2CCE3EB02AF67CFD00BB0ED3 /* HexaConverter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HexaConverter.swift; sourceTree = ""; }; + 2CEC5C702AFBF09800A6DEB3 /* BinaryConverter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BinaryConverter.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -62,7 +62,7 @@ 2CCE3E9E2AF678B200BB0ED3 /* BinaryConverterApp.swift */, 2CCE3EA02AF678B200BB0ED3 /* ContentView.swift */, 2CCE3EB02AF67CFD00BB0ED3 /* HexaConverter.swift */, - 2CCE3EAE2AF67BA900BB0ED3 /* BinaryConverter.swift */, + 2CEC5C702AFBF09800A6DEB3 /* BinaryConverter.swift */, 2C53DAA52AF866B200EB233F /* AnyBaseConverter.swift */, 2CCE3EAC2AF67A9000BB0ED3 /* UtilsFunctions.swift */, 2CCE3EA22AF678B300BB0ED3 /* Assets.xcassets */, @@ -150,9 +150,9 @@ buildActionMask = 2147483647; files = ( 2CCE3EA12AF678B200BB0ED3 /* ContentView.swift in Sources */, - 2CCE3EAF2AF67BA900BB0ED3 /* BinaryConverter.swift in Sources */, 2C53DAA62AF866B200EB233F /* AnyBaseConverter.swift in Sources */, 2CCE3EAD2AF67A9000BB0ED3 /* UtilsFunctions.swift in Sources */, + 2CEC5C712AFBF09800A6DEB3 /* BinaryConverter.swift in Sources */, 2CCE3EB12AF67CFD00BB0ED3 /* HexaConverter.swift in Sources */, 2CCE3E9F2AF678B200BB0ED3 /* BinaryConverterApp.swift in Sources */, ); diff --git a/BinaryConverter/AnyBaseConverter.swift b/BinaryConverter/AnyBaseConverter.swift index ad2e0dc..cbd5587 100644 --- a/BinaryConverter/AnyBaseConverter.swift +++ b/BinaryConverter/AnyBaseConverter.swift @@ -32,6 +32,14 @@ struct AnyBaseConverter: View { Section(header: Text("Result")) { Text("Your number in base \(destinationBasedNumber): \(resultConversion)") + .contextMenu(ContextMenu(menuItems: { + Button(action: { + let pasteboard = UIPasteboard.general + pasteboard.string = resultConversion + }, label: { + Label("Copy value", systemImage: "doc.on.doc") + }) + })) } Button("Dismiss Keyboard") { UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil) diff --git a/BinaryConverter/BinaryConverter.swift b/BinaryConverter/BinaryConverter.swift index 7a45db8..bc10c8b 100644 --- a/BinaryConverter/BinaryConverter.swift +++ b/BinaryConverter/BinaryConverter.swift @@ -18,6 +18,14 @@ struct BinaryConverter: View { } Section(header: Text("Base 2")) { Text("Your number in base 2: \(binaryNumber)") + .contextMenu(ContextMenu(menuItems: { + Button(action: { + let pasteboard = UIPasteboard.general + pasteboard.string = binaryNumber + }, label: { + Label("Copy value", systemImage: "doc.on.doc") + }) + })) } Button("Dismiss Keyboard") { UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil) diff --git a/BinaryConverter/HexaConverter.swift b/BinaryConverter/HexaConverter.swift index 9bfcbcd..d358896 100644 --- a/BinaryConverter/HexaConverter.swift +++ b/BinaryConverter/HexaConverter.swift @@ -18,6 +18,15 @@ struct HexaConverter: View { } Section(header: Text("Base 16")) { Text("Your number in base 16: \(HexadecimalNumber)") + .contextMenu(ContextMenu(menuItems: { + Button(action: { + let pasteboard = UIPasteboard.general + pasteboard.string = HexadecimalNumber + + }, label: { + Label("Copy value", systemImage: "doc.on.doc") + }) + })) } Button("Dismiss Keyboard") { UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)