Post

Replies

Boosts

Views

Activity

Reply to Adopting AppIntents and AppEntities for Apple Intelligence
So if I understand this correctly, adopting IndexedEntity on its own (without schema-based entities) should be enough to get semantic understanding from Siri for the 'data'. For eg. "which contact has the next birthday in " should work? But to get actionable 'intents', the intents would have to conform to one of the fixed schemas? Also, is there a way to request an expansion of the set of schemas and domains? It seems a little limited at this point.
Topic: App Intents SubTopic:
App Intents & Siri Q&A
Jun ’26
Reply to Crash with NSAttributedString in Core Data
Thanks for that. I tried it, and now I can save / fetch the NSData from Core Data after transforming it ... BUT it doesn't get rendered as an attributed string (i.e. the formatting gets lost). This is the code for the next TextEditor in iOS26 that takes an AttributedString for its binding. Is there something wrong that I'm doing? struct AttributedDetailView: View { @ObservedObject var item: Item @State private var notesText = AttributedString() var body: some View { VStack { TextEditor(text: $notesText) .padding() .onChange(of: notesText) { item.attributedString = NSAttributedString(notesText).toNSData() } } .onAppear { if let nsattributed = item.attributedString?.toAttributedString() { notesText = AttributedString(nsattributed) } else { notesText = "" } } .onDisappear { item.attributedString = NSAttributedString(notesText).toNSData() do { try item.managedObjectContext?.save() } catch { print("core data save error = \(error)") } } } }
Topic: App & System Services SubTopic: iCloud Tags:
Jun ’25
Reply to SwiftUI 'List' performance issue on macOS
Just to follow up on this (as it's still an issue in macOS 15.4), based on your feedback, the following should be equivalent in performance (but they're not): // 1. the 'fast' version struct ContentView: View { @Environment(\.managedObjectContext) private var viewContext @FetchRequest( fetchRequest: Item.myFetchRequest(), animation: .default) private var items: FetchedResults<Item> var body: some View { NavigationStack { List { ForEach(items) { item in Text("\(item.itemNumber ?? "None")") } } } } } // 2. The 'slow' version struct ContentView: View { @Environment(\.managedObjectContext) private var viewContext @FetchRequest( fetchRequest: Item.myFetchRequest(), animation: .default) private var items: FetchedResults<Item> var body: some View { NavigationStack { List { ForEach(items) { item in ContentItemView(item: item) //Text("\(item.itemNumber ?? "None")") } } } } } // extracted subview struct ContentItemView: View { let item: Item var body: some View { Text("\(item.itemNumber ?? "None")") } } If you add 5k rows here, and try to drag the window scrubber up and down to scroll through the list, you can see the performance problems in the 2nd version. The number of subviews in each row are equal in both implementations. Your explanation makes sense for iOS but not for macOS, where there's some performance problem under the hood.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Mar ’25
Reply to Adopting AppIntents and AppEntities for Apple Intelligence
So if I understand this correctly, adopting IndexedEntity on its own (without schema-based entities) should be enough to get semantic understanding from Siri for the 'data'. For eg. "which contact has the next birthday in " should work? But to get actionable 'intents', the intents would have to conform to one of the fixed schemas? Also, is there a way to request an expansion of the set of schemas and domains? It seems a little limited at this point.
Topic: App Intents SubTopic:
App Intents & Siri Q&A
Replies
Boosts
Views
Activity
Jun ’26
Reply to iCloud Sync not working with iPhone, works fine for Mac.
The issue isn't just with CKSyncEngine. I have a custom CloudKit-based syncing setup, which uses CKRecordZoneSubscription to listen and respond to changes in a zone, and the remote notifications aren't working with that either. I filed FB22380044 ... hopefully this can be patched up with a quick update, as it would break so many apps
Topic: App & System Services SubTopic: iCloud Tags:
Replies
Boosts
Views
Activity
Mar ’26
Reply to iPadOS: remove system actions from Menu Bar
Hi. Sorry I didn't specify, but I'm using UIKit. I figured I can use UIMainMenuSystem.Configuration().documentPreference = .removed and that removes the unnecessary File menu items. It still shows a 'Close Window' command instead of a 'Quit' command though.
Topic: UI Frameworks SubTopic: UIKit
Replies
Boosts
Views
Activity
Sep ’25
Reply to Crash with NSAttributedString in Core Data
Thanks for that. I tried it, and now I can save / fetch the NSData from Core Data after transforming it ... BUT it doesn't get rendered as an attributed string (i.e. the formatting gets lost). This is the code for the next TextEditor in iOS26 that takes an AttributedString for its binding. Is there something wrong that I'm doing? struct AttributedDetailView: View { @ObservedObject var item: Item @State private var notesText = AttributedString() var body: some View { VStack { TextEditor(text: $notesText) .padding() .onChange(of: notesText) { item.attributedString = NSAttributedString(notesText).toNSData() } } .onAppear { if let nsattributed = item.attributedString?.toAttributedString() { notesText = AttributedString(nsattributed) } else { notesText = "" } } .onDisappear { item.attributedString = NSAttributedString(notesText).toNSData() do { try item.managedObjectContext?.save() } catch { print("core data save error = \(error)") } } } }
Topic: App & System Services SubTopic: iCloud Tags:
Replies
Boosts
Views
Activity
Jun ’25
Reply to SwiftUI 'List' performance issue on macOS
Just to follow up on this (as it's still an issue in macOS 15.4), based on your feedback, the following should be equivalent in performance (but they're not): // 1. the 'fast' version struct ContentView: View { @Environment(\.managedObjectContext) private var viewContext @FetchRequest( fetchRequest: Item.myFetchRequest(), animation: .default) private var items: FetchedResults<Item> var body: some View { NavigationStack { List { ForEach(items) { item in Text("\(item.itemNumber ?? "None")") } } } } } // 2. The 'slow' version struct ContentView: View { @Environment(\.managedObjectContext) private var viewContext @FetchRequest( fetchRequest: Item.myFetchRequest(), animation: .default) private var items: FetchedResults<Item> var body: some View { NavigationStack { List { ForEach(items) { item in ContentItemView(item: item) //Text("\(item.itemNumber ?? "None")") } } } } } // extracted subview struct ContentItemView: View { let item: Item var body: some View { Text("\(item.itemNumber ?? "None")") } } If you add 5k rows here, and try to drag the window scrubber up and down to scroll through the list, you can see the performance problems in the 2nd version. The number of subviews in each row are equal in both implementations. Your explanation makes sense for iOS but not for macOS, where there's some performance problem under the hood.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Mar ’25