We have a feature requirement where we need to use LazyVGrid and DropDelegate. Our view hierarchy is as follows: Color.white.ignoresSafeArea() VStack(spacing: 0) { customNavigationView ScrollView(showsIndicators: true) { LazyVGrid(columns: columns, alignment: .center, spacing: 16) { ForEach(viewModel.selectedReferences, id: .self) { item in ZStack { Rectangle() .fill(Color.yellow.opacity(0.5)) Text(item.title) } .frame (height: 120) .background(Color.white) .padding([.leading, .trailing], 4) .overlay((draggedItem?.uuid == item.uuid && changedView) ? Color.white.opacity(0.8) : Color.clear) .clipShape(RoundedRectangle(cornerRadius: 16, style: .continuous)) .onDrag { initialIndex = viewModel.selectedReferences.firstIndex { $0 == item } draggedItem = item changedView = false return NSItemProvider(object: String(item.uuid) as NSString) } .clipShape(RoundedRectangle(cornerRadius: 16, style: .continuous)) .onDrop(of: [UTType.text], delegate: DragRelocateDelegate(item: item, listData: $viewM
Search results for
column
2,078 results found
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
I am writing an Library app that shows a grid. Each grid location shows the book cover and some info about the book. If the user clicks on a cover, the detail view opens. One option that the user has is a delete the book button. This button deletes the book from SwiftData, but the detail page remains populated. The simple way I want to handle this is to have the delete button also return to the grid view (eg root). Here is the relative code from the CurrentView @State private var path = [Book]() var body: some View { NavigationStack(path: $path) { BookListView(sort: sortOrder, searchString: searchText) .navigationTitle(Library) .navigationDestination(for: Book.self, destination: EditBookView.init) .searchable(text: $searchText) Here is the code from the Grid View var body: some View { LazyVGrid (columns: gridLayout) { ForEach(books) { book in NavigationLink(value: book) { GridRow { VStack { Here is the code from the Detail View var body: some View { Form { VStack (spacing: 0){ BookImageView(book: boo
Topic:
UI Frameworks
SubTopic:
SwiftUI
Hi, i have an old popover status bar mac app that i didn't check in the past few macOS releases, so don't know when the problem appeared. On Sonoma i have the following problem: All NSTableViews cells when they are reused the second time, they are blank. The cells are of type view and only one column. If i investigate in the Xcode's view hierarchy I indeed see no subviews in the cell, but if i print the subviews and their frames and their visibility, they are there alright, they exist. All the cells are instantiated from nib and I tried few strategies to use them: register the cell in the tableview and load it with tableView.makeView(withIdentifier: ) no registration, just load them from xib and keep a reference to their instance and feed that to the table when asked no registration, load them from xib when the table asks. This solution actually works but i really need a reference to them that doesn't change, it's a settings screen and someone else is feeding some info to this cells. I'm stuck, I hav
Topic:
UI Frameworks
SubTopic:
AppKit
&TLDR; I see no documentation stating that during the life of UISplitViewController, that I cannot call setViewController(xxxxx, column) more than once on the same column. Yet in my experience calling it a second time does not work, unless I set the value to nil before calling it again to set it to the new value... I'm using a UISplitViewController in newer column-style layout and when bootstrapping the app, I create the UISplitViewController and use setViewController(primaryViewController, .primary) and setViewController(detailViewController, .secondary). In order to use the primaryViewController for the compact scenario, I return the .primary column in the UISplitViewControllerDelegate method: splitViewController(_ svc: UISplitViewController, topColumnForCollapsingToProposedTopColumn proposedTopColumn: UISplitViewController.Column) -> UISplitViewController.Column Tapping a cell in the primaryViewController, results in a call to splitViewController.show(.secondary)
Topic:
UI Frameworks
SubTopic:
UIKit
I have a document app built using SwiftData because frankly I'm too lazy to learn how to use FileDocument. The app's title is Artsheets, and I'm using a document type that my app owns: com.wannafedor4.ArtsheetsDoc. The exported type identifier has these values: Description: Artsheets Document Identifier: com.wannafedor4.ArtsheetsDoc Conforms to: com.apple.package Reference URL: (none) Extensions: artsheets MIME Types: (none) And the code: ArtsheetsApp.swift import SwiftUI import SwiftData @main struct ArtsheetsApp: App { var body: some Scene { DocumentGroup(editing: Sheet.self, contentType: .package) { EditorView() } } } Document.swift import SwiftUI import SwiftData import UniformTypeIdentifiers @Model final class Sheet { var titleKey: String @Relationship(deleteRule: .cascade) var columns: [Column] init(titleKey: String, columns: [Column]) { self.titleKey = titleKey self.columns = columns } } @Model final class Column: Identifiable { var titlekey: String
Topic:
App & System Services
SubTopic:
iCloud & Data
Tags:
Swift Packages
Uniform Type Identifiers
SwiftData
Context menu on tvOS LazyVGrid selecting wrong item. It works fine if selecting items on last row. Testing on code from https://developer.apple.com/videos/play/wwdc2024/10207/ I just added contextMenu LazyVGrid(columns: columns, spacing: 40) { ForEach(sortedMatchingAssets) { asset in Button {} label: { asset.landscapeImage .resizable() .aspectRatio(16 / 9, contentMode: .fit) .contextMenu { Button(Test) {} } Text(asset.title) } .buttonStyle(.borderless) } } Attached video with the bug - https://www.icloud.com/iclouddrive/020zq2PxZ_E_1Pr0vE86-8aww#Screen_Recording_2024-06-13_at_9.26.15%E2%80%AFPM
When I trusted my certificate in 'Setting'->'VPN & Device Management', my device reboot automatically. After reboot, it showed that developer of My Team is not trusted in this iPhone, but the app is verified in the second column. The UI looks like: iOS18 beta: First Col: Trust My Team Second Col: MyApp Verified Other versions: First Col: Delete App Second Col: MyApp Verified What's more, my app has plugins(extensions), my app can run normally while the extension is not able to be pulled up on iOS18 beta.
Topic:
Business & Education
SubTopic:
General
Tags:
Signing Certificates
Device Management
Code Signing
In Xcode (Mac OS Catalina), when trying to create an application to access a database, I receive syntax errors, resulting from the installed version of SQlite (below 3.30) does not allowing generation of virtual columns. After updating to 3.46 the version installed on system, this does not occur if I execute such queries directly in SQlite, via Terminal. How do I get Xcode to access and use the system updated version ? Thanks in advance
Topic:
App & System Services
SubTopic:
iCloud & Data
Xcode creates one .lproj folder for each localization when compiling your String Catalog, so you can still check the existence of en.lproj by looking into your app bundle. Note that Xcode creates the .lproj folder only when the localization contains at least one localized string. As an example, if you select your String Catalog in Xcode, and see that the strings under the Enlgish (en) column are all gray, Xcode won't create en.lproj for you. So be sure that you add at least one localized string (which will then be shown in black) for your English localization. Best, —— Ziqiao Chen Worldwide Developer Relation.
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
Hi everyone, first-time caller, long-ti... wait, no, I just got here. :) I am relatively new to all things Apple, so apologies in advance if it takes me a few goes to properly explain things. We have a framework, which includes an API, an XPC service, etc, and we have a device driver. We also have some sample apps that use the framework, and if they have the app sandbox capability, then we expect them to use the XPC Service instead of accessing our driver directly. This works fine on Monterey and presumably has worked fine on all previous versions of MacOS. Something seems to have changed on Ventura, and we don't understand what. When we build the same app on Ventura, it appears to be in the sandbox (according to the Sandbox column in Activity Monitor), but in the Console there is this line (twice): default Revoking sandbox extension; key = 0 Which we suspect is linked to the fact that the app then does not use the XPC Service, and instead accesses the driver directly, much to our surprise. Softwar
Almost everyone I know absolutely HATES the macmail V10 update in big sur. So many conveniences and ease of operation that were available in 10.11.16 are gone. The icons are greyed out, the column layout is abysmal, the search engine does not function, way too many additional steps are now required to do the same job the V3 did with ease.. The standard question I hear is WHY would apple change what worked perfectly for so many and make a great mail system user unfriendly? There is an old adage that I keep hearing repeated If it ain't broke - don't fix it! The question I keep hearing is can anyone figure out a way to remove V10 from big sure and revert the mail system back to V3? There should be either an option or a way to revert the mail system back to what is loved by so many, without affecting the integrity of the security changes needed in big sur to make it safer.
UPDATED: I determined the line causing the hang was .animation(.default, value: layout). I'm seeing a strange issue when switching between a ScrollView/LazyVGrid and a List with my SwiftData but when toggling the layout it ends up freezing and I can't confirm what's causing the app to hang since there's no crash. I'm not getting much info from the debugger. Any help would be appreciated. struct ContentView: View { @Environment(.modelContext) private var modelContext @Query private var items: [Item] let gridItemLayout = [ GridItem(.adaptive(minimum: 150))] @State private var layout = Layout.grid var body: some View { NavigationStack { ZStack { if layout == .grid { ScrollView { LazyVGrid(columns: gridItemLayout, spacing: 5) { ForEach(items) { item in } } } } else { List { ForEach(items) { item in } } } } // MARK: HERE'S THE ERROR .animation(.default, value: layout) .navigationTitle(ScrollView) .toolbar { ToolbarItemGroup { Button(action: addItem) { Label(Add Item, systemImage: plus) } Menu { Picker(Lay
Hi, How to catch the event when details panel of a SplitView shows and get hidden, like when split is 2 columns and when its details only ? Kindest Regards
I'm having issues with a Lazyvgrid displaying images after the screen orientation changes ( either from horizontal to portrait, or the reverse ) What happens is the images are not sized correctly. If 2 column , I see 1/3 of column 1 and the image in column 2 takes 2/3 of the screen width. Similar issues with 3 or 6 column layout. The Lazyvgrid is inside a ScrollView and thats inside a Tabview. I'v tried to trick an update by changing the column layout, the content mode (fit/fill) of the images, etc. but so far nothing has worked. Any suggestions ?, anyway to invalidate a lazyvgrid and have swiftui rebuild it ? Thanks.
I'm running into this error, when the underlying SwiftData object changes (gets an object added to it): * A NavigationLink is presenting a value of type “Project” but there is no matching navigationDestination declaration visible from the location of the link. The link cannot be activated. Note: Links search for destinations in any surrounding NavigationStack, then within the same column of a NavigationSplitView. * For instance, when I first fire up the simulator, clicking on any existing project correctly takes me to its details page. However, as soon as I add a new project or delete a project, none of the navigation links work any more. If I reload the simulator, they all work again! Makes me suspect it's an error with not recomputing the links when the underlying data change, but I can't figure out what I need to change, as everything looks correct. Any help would be appreciated! ContentView: struct ContentView: View { @Environment(.modelContext) var modelContext @Query(sort: Project.endDate) var