Discuss the latest Apple technologies announced at WWDC22.

Posts under WWDC22 tag

117 Posts

Post

Replies

Boosts

Views

Activity

ACME Managed Device Attestation - Certificate format
I'm trying to implement ACME managed device attestation, I have ACME server code written in C# and I've been able to get all of the steps working except for the very last one - issuing the certificate. I so far have not been able to get the device to accept the certificate, the device logs show: Got certificate {length = ......} ACME request flow failed at step 9: Error Domain=NSOSStatusErrorDomain Code=-67673 "failed to obtain certificate" UserInfo={NSLocalizedDescription=failed to obtain certificate} The certificate is issued by an internal CA and the correct root certificate is in the device's trusted certs. I have tried returning the certificate chain as a file response or content response to the device as a "application/pem-certificate-chain" mime type (as outlined as the default in the ACME RFC), returning just the leaf certificate as PEM, returning the leaf certificate as DER with mime type "application/pkix-cert", "application/pkcs7-mime", "application/x-pkcs12" or "application/x-x509-ca-cert", but none of this has worked. Can anyone point me in the right direction to figure out what the issue is?
1
0
1.1k
Jan ’24
AppShortcuts limit for 10 shortcuts
Hi, according this WWDC session https://developer.apple.com/wwdc22/10170 App Shortcuts are defined in Swift code, by implementing the AppShortcutsProvider protocol. To implement the protocol, I'll simply create a single getter that returns all the app shortcuts I want to set up for the user. Note that in total, your app can have a maximum of 10 app shortcuts. However, most apps only need a few. there is a limit for up to 10 AppShortcuts. Could you please clarify how that limit handled? 🤔 (e.g. project failed to build / app will crash or malfunction / only 10 shortcuts will be handled on random/ordered choice by iOS) I suppose there is some way to manage shortcuts amount but see no details at documentation yet.
5
1
3.3k
Dec ’23
How to detect when a SwiftUI WindowGroup is closed?
I want to be able to detect when an auxiliary window is closed in order to display a confirmation dialog box. Apple's Mail app on MacOS exhibits this exact behaviour when a user closes a message they were composing, a dialog box appears asking to save, don't save or cancel. I am programmatically opening the auxiliary windows using the openWindow action in combination with the corresponding WindowGroup initialiser as described in this article Presenting windows and spaces and the WWDC video Bring multiple windows to your SwiftUI app.
0
0
1.1k
Dec ’23
Exploring Time-Based Activation Predicates in Declarative Device Management (DDM)
Hello Apple Community, I've been delving into the realm of time-based activation predicates through DDM. In my recent pursuits, I've been experimenting with the device's local time to evaluate a predicate expression and apply activation configurations. Is it possible to achieve this? Our DDM currently leverages device status items and server management properties to activate predicates. These predicates come to life when the logic becomes true, initiating activations seamlessly. While the Apple Predicate Guide provides a solid foundation, I've encountered some challenges when it comes to time-based expressions. The guide covers basics such as context and numerical-based predicates, but I find myself seeking more clarity on implementing time-based logic effectively. If any of you have insights, tips, or experiences to share regarding time-based activation predicates expressions in declarative device management, your input would be immensely valuable. I'm particularly interested in understanding practical approaches and gaining a deeper comprehension of the nuances involved. Thank you in advance.
3
0
1.1k
Nov ’23
iOS 16 Live Activity + SwiftUI Previews
Is it possible to see a preview of the Live Activity UI we design? For a regular widget, we pass in a WidgetPreviewContext modifier where we specify the size of the widget to preview. Is it possible to do something similar to see how the live activity would appear without having to run the app and then see how the live activity appears on the Lock Screen?
3
6
2.9k
Oct ’23
Will the Virtualization Framework support iCloud accounts?
The new Virtualization framework (and sample code!) are great. It's a lot of fun to run the sample code and quickly fire up multiple VMs of macOS running as a guest. However, the inability to authenticate with any iCloud services is a significant roadblock. Xcode, for example, is not allowing me to authenticate my developer account. Are there any plans to resolve this issue so that iCloud accounts can be authenticated from within a VM?
9
4
4.6k
Oct ’23
Xcode Cloud: All builds get stuck in Archive action - all tasks are green, but the action stays running for 10+ hours or until killed
All of my builds get stuck on Archive action - it keeps running forever (10+ hours where it took 30 minutes before for a clean build), and never finishes despite having all subtasks finished (green check). This started to happen on a workflow that has worked reliably for months, right after WWDC22 start - is there a problem with a new version of Xcode Cloud?
4
1
3k
Sep ’23
Can I get code examples of the Worklog app that was shown on WWDC22?
I'm looking for a way to check user Screen Time and trigger a notification after a specified amount of time on certain apps. I have the code from WWDC21 but I was wondering if I could get the code sample for the Worklog app created for WWDC22. Would really help as a reference point for building my project. Thank you!
2
0
1.5k
Aug ’23
Swift UI Table - Problems removing selection from row
Hi,i have been trying out SwiftUI Table and wanted to present a details view when click on Table Row occurs, but I couldn't figure out how to "deselect" row once its been selected, while it may not be what Table was intended for, but I still think this code should be valid. (iPadOS) struct Person: Identifiable { let givenName: String let familyName: String let emailAddress: String let id = UUID() } private var people = [ Person(givenName: "Juan", familyName: "Chavez", emailAddress: "juanchavez@icloud.com"), Person(givenName: "Mei", familyName: "Chen", emailAddress: "meichen@icloud.com"), Person(givenName: "Tom", familyName: "Clark", emailAddress: "tomclark@icloud.com"), Person(givenName: "Gita", familyName: "Kumar", emailAddress: "gitakumar@icloud.com") ] @State private var selectedPeople: Person.ID? @State private var detailsViewPresented: Bool = false var body: some View {         Table(people, selection: $selectedPeople) {             TableColumn("Given Name", value: \.givenName)             TableColumn("Family Name", value: \.familyName)             TableColumn("E-Mail Address", value: \.emailAddress)         }         .onChange(of: selectedPeople) { selection in             guard selection != nil else {                 return             }             detailsViewPresented = true         }         .sheet(isPresented: $detailsViewPresented, onDismiss: {             // Trying to reset the selection             self.selectedPeople = nil         }) {             Text("Person's details")         } } Here when I press row, it gets selected and Text is presented, but row still remains selected, and yes, I could just use onTapGesture within row content if I declared TableColumn with explicit content, but it would just be added to that column and would not provide build in selection style. https://developer.apple.com/documentation/swiftui/table
1
0
1.7k
Jul ’23
Can't update Live Activity from app with ActivityKit when app is running in the background with background audio playing.
I had a timer app, it played white noise after starting the timer. so my app is running in the background with background audio, and the timer is perfect for display with live activity. However, when I test my code with a real device, I find calling await activity.update(using: contentState) when app is running in the background does not work at all. the code executes, but the live activity won't get updated. After some experiments, I find: if the app is running in the background with background location or Picture-in-picture mode, the app can update live activity when running in the background. If the app is running in the background with audio playing, it will work on simulator, but not on a real device. I submit a feedback: FB11683922 (Can't update Live Activity from app with ActivityKit when app is running in the background with background audio playing.) My code is like: func startLiveActivity() { // Prepare content state and attributes.     do {       self.activity = try Activity.request(attributes: activityAttributes, contentState: initialContentState) // Play audio so app can keep running in the background.       try playAudio()     } catch (let error) {       print("Error requesting Live Activity \(error.localizedDescription).")     }   } private func playAudio() throws {     try AVAudioSession.sharedInstance().setCategory(.playback, options: .mixWithOthers)     try AVAudioSession.sharedInstance().setActive(true)     if self.player == nil {       if let url = Bundle.main.url(forResource: "Forest", withExtension: "m4a") {         player = try AVAudioPlayer(contentsOf: url)         player?.numberOfLoops = -1       }     }     player?.stop()     player?.currentTime = 0     player?.play()   } after the timer stops, the code will execute, but the live activity won't get updated.   func updateActivity(){     Task {       if let activity = self.activity { // Prepare content state         await activity.update(using: contentState)       }     }   }
20
7
8.7k
Jul ’23
How to get this example to work?
Hello there, I am trying to follow along with the video and copy the example shown here in SwiftUI. I am given the error Cannot assign value of type 'UIView' to type 'PKCanvasView?' on this line: resultView = overlayView It is totally possible that I am botching the whole thing up but I would appreciate it if someone looked over my code. Thanks. code: // ContentView.swift import SwiftUI import PDFKit import PencilKit import Foundation import UIKit struct PDFUIView: View { let pdfDoc: PDFDocument let pdfView: PDFView init() { let url = Bundle.main.url(forResource: "example", withExtension: "pdf")! pdfDoc = PDFDocument(url: url)! pdfView = PDFView() } var body: some View { VStack { PDFKitView(showing: pdfDoc, pdfView: pdfView) } .padding() } } #Preview { PDFUIView() } struct PDFKitView: UIViewRepresentable { let pdfDocument: PDFDocument let pdfView: PDFView init(showing pdfDoc: PDFDocument, pdfView:PDFView) { self.pdfDocument = pdfDoc self.pdfView = pdfView } func makeUIView(context: Context) -> PDFView { pdfView.usePageViewController(true) pdfView.autoScales = true pdfView.pageOverlayViewProvider = context.coordinator pdfView.displayMode = .singlePageContinuous pdfView.isUserInteractionEnabled = true pdfView.document = pdfDocument pdfView.delegate = context.coordinator return pdfView } func updateUIView(_ pdfView: PDFView, context: Context) { pdfView.document = pdfDocument } func makeCoordinator() -> Coordinator { Coordinator() } } class Coordinator: NSObject, PDFPageOverlayViewProvider, PDFViewDelegate { var pageToViewMapping = [PDFPage: UIView]() func pdfView(_ view: PDFView, overlayViewFor page: PDFPage) -> UIView? { var resultView: PKCanvasView? = nil if let overlayView = pageToViewMapping[page] { resultView = overlayView } else { var canvasView = PKCanvasView(frame: .zero) canvasView.drawingPolicy = .anyInput canvasView.tool = PKInkingTool(.pen, color: .systemCyan, width: 20) canvasView.backgroundColor = UIColor.clear pageToViewMapping[page] = canvasView resultView = canvasView } let page = page as! MyPDFPage if let drawing = page.drawing { resultView?.drawing = drawing } return resultView } func pdfView(_ pdfView: PDFView, willDisplayOverlayView overlayView: UIView, for page: PDFPage) { guard let overlayView = overlayView as? PKCanvasView else { return } guard let canvasView = pageToViewMapping[page] else { return } let page = page as! MyPDFPage page.drawing = overlayView.drawing pageToViewMapping.removeValue(forKey: page) } class MyPDFAnnotation: PDFAnnotation { override func draw(with box: PDFDisplayBox, in context: CGContext) { UIGraphicsPushContext(context) context.saveGState() let page = self.page as! MyPDFPage if let drawing = page.drawing { let image = drawing.image(from: drawing.bounds, scale: 1) image.draw(in: drawing.bounds) } context.restoreGState() UIGraphicsPopContext() } } class MyPDFPage: PDFPage { var drawing: PKDrawing? } }
1
0
1.3k
Jul ’23
PTChannelDescriptor is not changing when I leave and then join another channel
I am using the same ChannelManager, however when switching to another channel, I leave the channel and then requestToJoin a new channel with the new inputted ChannelName and PTDescriptor however the name and image are not changing when I go to background to see the Native UI. Am I missing something to call for an update for the PTDescriptor?
1
0
1k
Jul ’23
How to pass SwiftUI container size to the body of subviews?
The child views of my container need to get (not set) the size of container from within their view body, in order to perform some calculation. I've made a custom container that conforms to the Layout protocol (the actual implementation isn't important). The required placeSubviews method has a bounds parameter which is the size of container. Does anyone know whether it is possible to store the bounds somewhere so that the subviews of the container can access it, such as in environment key of the view hierarchy? Or is my only option to use a GeometryReader? struct CustomContainer: Layout { func sizeThatFits(proposal: ProposedViewSize, subviews: Subviews, cache: inout Void) -> CGSize { // Calculate and return the size of the layout container. } func placeSubviews(in bounds: CGRect, proposal: ProposedViewSize, subviews: Subviews, cache: inout Void) { // Tell each subview where to appear. // Can I store bounds parameter somewhere?? } }
0
0
845
Jul ’23
AppKit API to check whether Stage Manager is turned on for conditional behaviour?
Hello! Since the Stage Manager now occupies a set of interactions left of the screen to display a new dock, we'd like to conditionally turn off features or provide a feature workaround to not conflict with this set of interactions. Is there any way to check in AppKit, whether Stage Manager is currently turned on in the system to accomplish this? Any help would be greatly appreciated!
1
0
1.4k
Jul ’23
ScrollView + .refreshable
How can I add a native UX for pull-to-refresh for a ScrollView? Is support for this being added in iOS 16? Right now, the native UX only appears for List. For example, I want to support to be able to support .refreshable on a ScrollView like this: var body: some View {     ScrollView {       LazyVStack {         Text("1")         Text("2")         Text("3")       }     }     .refreshable {       ///     }   }
4
2
7.2k
Jul ’23
Did anyone notice the quote sign bugs in the demo code?
Today I was searching for some watchOS code, and came across this WWDC22 demo. But I found out there are some quote sign bugs in the demo code (go to the code section and scroll down) like this: ... y: .value( “Completed", dataPoint.itemsComplete) ) ... It is so obvious that the code block even displays the code after those signs with a different color. There are 4 such code bugs in that page. Looks like the guy who wrote the code pasted that for 3 times and never noticed that lol.
1
0
808
Jun ’23
Medications in HealthKit?
Exciting to see the new Medication tracking features coming to Health. As a medical app we're wondering if read/write access to these is coming to HealthKit? We're currently building prescription management into our app so it would be great to be able to let users also add these to Health to handle their adherence tracking.
4
9
3.3k
Jun ’23
Section collapse triangle for section header no longer supported with NavigationStack?
Since NavigationView is now deprecated, I’m trying to update my code to use NavigationStack instead. However, I found that when using NavigationStack, section headers within an overall List view no longer have the collapsing triangle functionality. This used to work for NavigationView, List view, Section headers. Am I missing something? Is there a way to get back the section header collapse triangle within an overall List view when encapsulating within a NavigationStack?
3
1
2.2k
Jun ’23
ACME Managed Device Attestation - Certificate format
I'm trying to implement ACME managed device attestation, I have ACME server code written in C# and I've been able to get all of the steps working except for the very last one - issuing the certificate. I so far have not been able to get the device to accept the certificate, the device logs show: Got certificate {length = ......} ACME request flow failed at step 9: Error Domain=NSOSStatusErrorDomain Code=-67673 "failed to obtain certificate" UserInfo={NSLocalizedDescription=failed to obtain certificate} The certificate is issued by an internal CA and the correct root certificate is in the device's trusted certs. I have tried returning the certificate chain as a file response or content response to the device as a "application/pem-certificate-chain" mime type (as outlined as the default in the ACME RFC), returning just the leaf certificate as PEM, returning the leaf certificate as DER with mime type "application/pkix-cert", "application/pkcs7-mime", "application/x-pkcs12" or "application/x-x509-ca-cert", but none of this has worked. Can anyone point me in the right direction to figure out what the issue is?
Replies
1
Boosts
0
Views
1.1k
Activity
Jan ’24
AppShortcuts limit for 10 shortcuts
Hi, according this WWDC session https://developer.apple.com/wwdc22/10170 App Shortcuts are defined in Swift code, by implementing the AppShortcutsProvider protocol. To implement the protocol, I'll simply create a single getter that returns all the app shortcuts I want to set up for the user. Note that in total, your app can have a maximum of 10 app shortcuts. However, most apps only need a few. there is a limit for up to 10 AppShortcuts. Could you please clarify how that limit handled? 🤔 (e.g. project failed to build / app will crash or malfunction / only 10 shortcuts will be handled on random/ordered choice by iOS) I suppose there is some way to manage shortcuts amount but see no details at documentation yet.
Replies
5
Boosts
1
Views
3.3k
Activity
Dec ’23
How to detect when a SwiftUI WindowGroup is closed?
I want to be able to detect when an auxiliary window is closed in order to display a confirmation dialog box. Apple's Mail app on MacOS exhibits this exact behaviour when a user closes a message they were composing, a dialog box appears asking to save, don't save or cancel. I am programmatically opening the auxiliary windows using the openWindow action in combination with the corresponding WindowGroup initialiser as described in this article Presenting windows and spaces and the WWDC video Bring multiple windows to your SwiftUI app.
Replies
0
Boosts
0
Views
1.1k
Activity
Dec ’23
Exploring Time-Based Activation Predicates in Declarative Device Management (DDM)
Hello Apple Community, I've been delving into the realm of time-based activation predicates through DDM. In my recent pursuits, I've been experimenting with the device's local time to evaluate a predicate expression and apply activation configurations. Is it possible to achieve this? Our DDM currently leverages device status items and server management properties to activate predicates. These predicates come to life when the logic becomes true, initiating activations seamlessly. While the Apple Predicate Guide provides a solid foundation, I've encountered some challenges when it comes to time-based expressions. The guide covers basics such as context and numerical-based predicates, but I find myself seeking more clarity on implementing time-based logic effectively. If any of you have insights, tips, or experiences to share regarding time-based activation predicates expressions in declarative device management, your input would be immensely valuable. I'm particularly interested in understanding practical approaches and gaining a deeper comprehension of the nuances involved. Thank you in advance.
Replies
3
Boosts
0
Views
1.1k
Activity
Nov ’23
iOS 16 Live Activity + SwiftUI Previews
Is it possible to see a preview of the Live Activity UI we design? For a regular widget, we pass in a WidgetPreviewContext modifier where we specify the size of the widget to preview. Is it possible to do something similar to see how the live activity would appear without having to run the app and then see how the live activity appears on the Lock Screen?
Replies
3
Boosts
6
Views
2.9k
Activity
Oct ’23
Will the Virtualization Framework support iCloud accounts?
The new Virtualization framework (and sample code!) are great. It's a lot of fun to run the sample code and quickly fire up multiple VMs of macOS running as a guest. However, the inability to authenticate with any iCloud services is a significant roadblock. Xcode, for example, is not allowing me to authenticate my developer account. Are there any plans to resolve this issue so that iCloud accounts can be authenticated from within a VM?
Replies
9
Boosts
4
Views
4.6k
Activity
Oct ’23
Xcode Cloud: All builds get stuck in Archive action - all tasks are green, but the action stays running for 10+ hours or until killed
All of my builds get stuck on Archive action - it keeps running forever (10+ hours where it took 30 minutes before for a clean build), and never finishes despite having all subtasks finished (green check). This started to happen on a workflow that has worked reliably for months, right after WWDC22 start - is there a problem with a new version of Xcode Cloud?
Replies
4
Boosts
1
Views
3k
Activity
Sep ’23
Can I get code examples of the Worklog app that was shown on WWDC22?
I'm looking for a way to check user Screen Time and trigger a notification after a specified amount of time on certain apps. I have the code from WWDC21 but I was wondering if I could get the code sample for the Worklog app created for WWDC22. Would really help as a reference point for building my project. Thank you!
Replies
2
Boosts
0
Views
1.5k
Activity
Aug ’23
Project download for “meet weatherkit” WWDC2022-10003
Could somebody please point me to the project download mentioned in Novall Khan’s “Meet Weatherkit” presentation? I’d additionally or alternatively be interested in any working examples for using the rest API, eg in Python, to access Weatherki. thanks, Rob
Replies
1
Boosts
0
Views
771
Activity
Aug ’23
Swift UI Table - Problems removing selection from row
Hi,i have been trying out SwiftUI Table and wanted to present a details view when click on Table Row occurs, but I couldn't figure out how to "deselect" row once its been selected, while it may not be what Table was intended for, but I still think this code should be valid. (iPadOS) struct Person: Identifiable { let givenName: String let familyName: String let emailAddress: String let id = UUID() } private var people = [ Person(givenName: "Juan", familyName: "Chavez", emailAddress: "juanchavez@icloud.com"), Person(givenName: "Mei", familyName: "Chen", emailAddress: "meichen@icloud.com"), Person(givenName: "Tom", familyName: "Clark", emailAddress: "tomclark@icloud.com"), Person(givenName: "Gita", familyName: "Kumar", emailAddress: "gitakumar@icloud.com") ] @State private var selectedPeople: Person.ID? @State private var detailsViewPresented: Bool = false var body: some View {         Table(people, selection: $selectedPeople) {             TableColumn("Given Name", value: \.givenName)             TableColumn("Family Name", value: \.familyName)             TableColumn("E-Mail Address", value: \.emailAddress)         }         .onChange(of: selectedPeople) { selection in             guard selection != nil else {                 return             }             detailsViewPresented = true         }         .sheet(isPresented: $detailsViewPresented, onDismiss: {             // Trying to reset the selection             self.selectedPeople = nil         }) {             Text("Person's details")         } } Here when I press row, it gets selected and Text is presented, but row still remains selected, and yes, I could just use onTapGesture within row content if I declared TableColumn with explicit content, but it would just be added to that column and would not provide build in selection style. https://developer.apple.com/documentation/swiftui/table
Replies
1
Boosts
0
Views
1.7k
Activity
Jul ’23
Can't update Live Activity from app with ActivityKit when app is running in the background with background audio playing.
I had a timer app, it played white noise after starting the timer. so my app is running in the background with background audio, and the timer is perfect for display with live activity. However, when I test my code with a real device, I find calling await activity.update(using: contentState) when app is running in the background does not work at all. the code executes, but the live activity won't get updated. After some experiments, I find: if the app is running in the background with background location or Picture-in-picture mode, the app can update live activity when running in the background. If the app is running in the background with audio playing, it will work on simulator, but not on a real device. I submit a feedback: FB11683922 (Can't update Live Activity from app with ActivityKit when app is running in the background with background audio playing.) My code is like: func startLiveActivity() { // Prepare content state and attributes.     do {       self.activity = try Activity.request(attributes: activityAttributes, contentState: initialContentState) // Play audio so app can keep running in the background.       try playAudio()     } catch (let error) {       print("Error requesting Live Activity \(error.localizedDescription).")     }   } private func playAudio() throws {     try AVAudioSession.sharedInstance().setCategory(.playback, options: .mixWithOthers)     try AVAudioSession.sharedInstance().setActive(true)     if self.player == nil {       if let url = Bundle.main.url(forResource: "Forest", withExtension: "m4a") {         player = try AVAudioPlayer(contentsOf: url)         player?.numberOfLoops = -1       }     }     player?.stop()     player?.currentTime = 0     player?.play()   } after the timer stops, the code will execute, but the live activity won't get updated.   func updateActivity(){     Task {       if let activity = self.activity { // Prepare content state         await activity.update(using: contentState)       }     }   }
Replies
20
Boosts
7
Views
8.7k
Activity
Jul ’23
How to get this example to work?
Hello there, I am trying to follow along with the video and copy the example shown here in SwiftUI. I am given the error Cannot assign value of type 'UIView' to type 'PKCanvasView?' on this line: resultView = overlayView It is totally possible that I am botching the whole thing up but I would appreciate it if someone looked over my code. Thanks. code: // ContentView.swift import SwiftUI import PDFKit import PencilKit import Foundation import UIKit struct PDFUIView: View { let pdfDoc: PDFDocument let pdfView: PDFView init() { let url = Bundle.main.url(forResource: "example", withExtension: "pdf")! pdfDoc = PDFDocument(url: url)! pdfView = PDFView() } var body: some View { VStack { PDFKitView(showing: pdfDoc, pdfView: pdfView) } .padding() } } #Preview { PDFUIView() } struct PDFKitView: UIViewRepresentable { let pdfDocument: PDFDocument let pdfView: PDFView init(showing pdfDoc: PDFDocument, pdfView:PDFView) { self.pdfDocument = pdfDoc self.pdfView = pdfView } func makeUIView(context: Context) -> PDFView { pdfView.usePageViewController(true) pdfView.autoScales = true pdfView.pageOverlayViewProvider = context.coordinator pdfView.displayMode = .singlePageContinuous pdfView.isUserInteractionEnabled = true pdfView.document = pdfDocument pdfView.delegate = context.coordinator return pdfView } func updateUIView(_ pdfView: PDFView, context: Context) { pdfView.document = pdfDocument } func makeCoordinator() -> Coordinator { Coordinator() } } class Coordinator: NSObject, PDFPageOverlayViewProvider, PDFViewDelegate { var pageToViewMapping = [PDFPage: UIView]() func pdfView(_ view: PDFView, overlayViewFor page: PDFPage) -> UIView? { var resultView: PKCanvasView? = nil if let overlayView = pageToViewMapping[page] { resultView = overlayView } else { var canvasView = PKCanvasView(frame: .zero) canvasView.drawingPolicy = .anyInput canvasView.tool = PKInkingTool(.pen, color: .systemCyan, width: 20) canvasView.backgroundColor = UIColor.clear pageToViewMapping[page] = canvasView resultView = canvasView } let page = page as! MyPDFPage if let drawing = page.drawing { resultView?.drawing = drawing } return resultView } func pdfView(_ pdfView: PDFView, willDisplayOverlayView overlayView: UIView, for page: PDFPage) { guard let overlayView = overlayView as? PKCanvasView else { return } guard let canvasView = pageToViewMapping[page] else { return } let page = page as! MyPDFPage page.drawing = overlayView.drawing pageToViewMapping.removeValue(forKey: page) } class MyPDFAnnotation: PDFAnnotation { override func draw(with box: PDFDisplayBox, in context: CGContext) { UIGraphicsPushContext(context) context.saveGState() let page = self.page as! MyPDFPage if let drawing = page.drawing { let image = drawing.image(from: drawing.bounds, scale: 1) image.draw(in: drawing.bounds) } context.restoreGState() UIGraphicsPopContext() } } class MyPDFPage: PDFPage { var drawing: PKDrawing? } }
Replies
1
Boosts
0
Views
1.3k
Activity
Jul ’23
PTChannelDescriptor is not changing when I leave and then join another channel
I am using the same ChannelManager, however when switching to another channel, I leave the channel and then requestToJoin a new channel with the new inputted ChannelName and PTDescriptor however the name and image are not changing when I go to background to see the Native UI. Am I missing something to call for an update for the PTDescriptor?
Replies
1
Boosts
0
Views
1k
Activity
Jul ’23
How to pass SwiftUI container size to the body of subviews?
The child views of my container need to get (not set) the size of container from within their view body, in order to perform some calculation. I've made a custom container that conforms to the Layout protocol (the actual implementation isn't important). The required placeSubviews method has a bounds parameter which is the size of container. Does anyone know whether it is possible to store the bounds somewhere so that the subviews of the container can access it, such as in environment key of the view hierarchy? Or is my only option to use a GeometryReader? struct CustomContainer: Layout { func sizeThatFits(proposal: ProposedViewSize, subviews: Subviews, cache: inout Void) -> CGSize { // Calculate and return the size of the layout container. } func placeSubviews(in bounds: CGRect, proposal: ProposedViewSize, subviews: Subviews, cache: inout Void) { // Tell each subview where to appear. // Can I store bounds parameter somewhere?? } }
Replies
0
Boosts
0
Views
845
Activity
Jul ’23
AppKit API to check whether Stage Manager is turned on for conditional behaviour?
Hello! Since the Stage Manager now occupies a set of interactions left of the screen to display a new dock, we'd like to conditionally turn off features or provide a feature workaround to not conflict with this set of interactions. Is there any way to check in AppKit, whether Stage Manager is currently turned on in the system to accomplish this? Any help would be greatly appreciated!
Replies
1
Boosts
0
Views
1.4k
Activity
Jul ’23
ScrollView + .refreshable
How can I add a native UX for pull-to-refresh for a ScrollView? Is support for this being added in iOS 16? Right now, the native UX only appears for List. For example, I want to support to be able to support .refreshable on a ScrollView like this: var body: some View {     ScrollView {       LazyVStack {         Text("1")         Text("2")         Text("3")       }     }     .refreshable {       ///     }   }
Replies
4
Boosts
2
Views
7.2k
Activity
Jul ’23
Did anyone notice the quote sign bugs in the demo code?
Today I was searching for some watchOS code, and came across this WWDC22 demo. But I found out there are some quote sign bugs in the demo code (go to the code section and scroll down) like this: ... y: .value( “Completed", dataPoint.itemsComplete) ) ... It is so obvious that the code block even displays the code after those signs with a different color. There are 4 such code bugs in that page. Looks like the guy who wrote the code pasted that for 3 times and never noticed that lol.
Replies
1
Boosts
0
Views
808
Activity
Jun ’23
Medications in HealthKit?
Exciting to see the new Medication tracking features coming to Health. As a medical app we're wondering if read/write access to these is coming to HealthKit? We're currently building prescription management into our app so it would be great to be able to let users also add these to Health to handle their adherence tracking.
Replies
4
Boosts
9
Views
3.3k
Activity
Jun ’23
Section collapse triangle for section header no longer supported with NavigationStack?
Since NavigationView is now deprecated, I’m trying to update my code to use NavigationStack instead. However, I found that when using NavigationStack, section headers within an overall List view no longer have the collapsing triangle functionality. This used to work for NavigationView, List view, Section headers. Am I missing something? Is there a way to get back the section header collapse triangle within an overall List view when encapsulating within a NavigationStack?
Replies
3
Boosts
1
Views
2.2k
Activity
Jun ’23
Extract data from the Device Activity Report Extension
Hello, I would like to know if it is possible to extract or send data from the Device Activity Report Extension of a child phone to a parent phone (using a custom backend or not) with the child phone application. Best regards, Indigen
Replies
2
Boosts
0
Views
1.1k
Activity
Jun ’23