Post

Replies

Boosts

Views

Activity

SwiftUI Scene with a single window on macOS
Is it possible to only allow a single window instance on macOS? WindowGroup/DocumentGroup allow the user to create multiple instances of a window. I'd like to only allow one, for an Onboarding sequence. I've checked the Scene documentation - https://developer.apple.com/documentation/swiftui/scene, and it appears the only types conforming to the Scene protocol are WindowGroup, DocumentGroup and Settings. How can I create a single Window in a SwiftUI App? An example use case: struct TutorialScene: Scene {   var body: some Scene { 	// I don't want to allow multiple windows of this Scene! 	WindowGroup { 		TutorialView() 	}	 }
6
0
4.4k
Aug ’20
TextKit 2 and SwiftUI
Is it possible to use/draw a SwiftUI view in TextKit 2? The NSTextLayoutManagerDelegate seems to be built around returning a NSTextLayoutFragment. Since NSTextLayoutFragment is a class, I can't subclass it and use SwiftUI. I'd love to create my views using SwiftUI, since it's a lot faster than figuring out CGPaths, pixel perfect anti-aliasing, etc. Thanks!
0
0
1k
Sep ’21
How to conditionally show a SwiftUI Scene on macOS?
I have an Onboarding Window/Scene I want to appear on the first launch of the app, or when a use clicks a menu command. Using an AppStorage with a boolean value would be perfect, but when I try to add an if in my SceneBuilder I get the following error: Closure containing control flow statement cannot be used with function builder 'SceneBuilder'. import SwiftUI @main struct MyApp: App {   @AppStorage("tutorialVisible") var tutorialVisible: Bool = true   var body: some Scene {     MainScene()     if tutorialVisible {       TutorialScene()     }   } } How can this be done?
4
0
4.8k
Aug ’20
Library/SPM issue with latest Xcode 11.4 beta
I have a library I created with Swift Package Manager, and I'd like to use it in both my Containing App and Safari App Extension.- I've added the library to the Project using the new "Swift Packages" tab in Xcode.- The Safari App Extension Target has my library added under "Frameworks and Libraries".With this configuration I get "Undefined symbol" compiler errors. If I add the library to the App under "Frameworks, Libraries, and Embedded Content", then I get:"Swift package product '{SWIFT PACKAGE}' is linked as a static library by '{APP NAME}' and '{EXTENSION NAME}'. This will result in duplication of library code."The odd thing is that the project compiles fine in Xcode 11.3.1. Did something change with SPM in the Xcode 11.4 beta? Maybe I should use a dynamic library? Or am I doing something else wrong?
27
1
17k
Feb ’20
SwiftUI Previews in Swift Packages
I can't seem to get my SwiftUI preview to work in a Swift Package created with the "Multiplatform Swift Package" Xcode 12 template. Does this feature require macOS 11+? I'm currently on Catalina with the Xcode 12 beta. Here's what I get from the SwiftUI Preview Diagnostics on macOS: HumanReadableNSError: connectToPreviewHost: Failed to connect to 2247: Error Domain=com.apple.dt.ProcessAttachUtilities Code=0 "Failed to get task for pid 2247: 0" UserInfo={NSLocalizedDescription=Failed to get task for pid 2247: 0} com.apple.dt.xcodepreviews.service (17): and on iOS: 'SwiftUIView_Previews' is not a member type of 'NoiseKit' CompileDylibError: Failed to build SwiftUIView.swift Compiling failed: 'SwiftUIView_Previews' is not a member type of 'NoiseKit' /Users/rudedogg/Library/Developer/Xcode/DerivedData/NoiseKit-gefbuwplfdnsqkghveaurldpgavw/Build/Intermediates.noindex/Previews/NoiseKit/Intermediates.noindex/NoiseKit.build/Debug-appletvsimulator/NoiseKit.build/Objects-normal/x86_64/SwiftUIView.2.preview-thunk.swift:22:43: error: 'SwiftUIView_Previews' is not a member type of 'NoiseKit' typealias SwiftUIView_Previews = NoiseKit.SwiftUIView_Previews                                  ~~~~~~~~ ^ /Volumes/Files/work/packages/NoiseKit/Sources/NoiseKit/NoiseKit.swift:1:8: note: 'NoiseKit' declared here struct NoiseKit {        ^ /Users/rudedogg/Library/Developer/Xcode/DerivedData/NoiseKit-gefbuwplfdnsqkghveaurldpgavw/Build/Intermediates.noindex/Previews/NoiseKit/Intermediates.noindex/NoiseKit.build/Debug-appletvsimulator/NoiseKit.build/Objects-normal/x86_64/SwiftUIView.2.preview-thunk.swift:21:34: error: 'SwiftUIView' is not a member type of 'NoiseKit' typealias SwiftUIView = NoiseKit.SwiftUIView                         ~~~~~~~~ ^ /Volumes/Files/work/packages/NoiseKit/Sources/NoiseKit/NoiseKit.swift:1:8: note: 'NoiseKit' declared here struct NoiseKit {        ^
6
0
4.6k
Jul ’20
TabView images on macOS
I can't seem to get the SwiftUI TabView images to work on macOS, no matter what I try. I've tried different images, image sizes, etc. I've also swapped the Image/Text order in the .tabItem, and tried wrapping it in a VStack/Group.Are they just not working?struct PlaygroundView: View { @State private var selectedTab: Int = 0 var body: some View { TabView(selection: $selectedTab) { Text("Tab 1 contents") .tag(0) .tabItem { Image(nsImage: NSImage(named: NSImage.goLeftTemplateName)!) Text("Tab 1") } Text("Tab 2 contents") .tag(1) .tabItem { Image(nsImage: NSImage(named: NSImage.goRightTemplateName)!) Text("Tab 2") } } } }
3
0
2.7k
Dec ’19