Post

Replies

Boosts

Views

Activity

How to save an Image to NsData object and then retrieve.
My environment is as follows: Xcode 12, macOS BS developing a macOS app. I have an IBOutlet from a IB window as @IBOutlet weak var imageView: NSImageView! So, I want to store imageView to a NSData object and then save the NSData object in my UserDefaults. Once I saved the Image in my UserDefaults I need to be able to decode or retrieve the image for use in other parts of the app. How is this done? Also, I have seen some cautions about converting an Image to NSData object and retrieving. It seems the retrieved image may not be 100% as it was originally. Is this true and if so why? Thanks
2
0
1.2k
Jun ’21
Xcode 13.2 and Github - No Packages listed
I connected Github to Xcode 13.2 (Monterey macOS) successfully, however I do not see any packages available when I select Github as the source. I did download Xcode 13.2 from the developers website and it did fix some problems I was having with Xcode from the App Store but did make any difference to the issue above. Anybody else have this issue with Xcode 13.2?
4
0
1.2k
Mar ’22
How to Activate Printer Panel
How do you activate the Printer Panel using a toolbar printer Icon in a macOS app like you get when I select File -> Print (CMD-P)? This is in a tableView view based screen. I have connected the first responder to "print:" thinking this might work but the printer Icon in the toolbar remains grayed-out. Also, tried connecting it to a @IBAction func but it still is grayed out. I am using Xcode 13 and 14 beta
0
0
391
Jul ’22
How to call function in NSViewController?
class CustViewController: NSViewController { @IBOutlet weak var tableView: NSTableView! @IBOutlet weak var statusLabel: NSTextField! fileprivate var selectedOptionFromMenu = "" @objc var contacts:[Person] = [] @objc var backUpContacts:[Person] = [] @IBAction func printCustomers(_ sender: Any?) { I would like to call the printCustomers function in the CustViewController from another class (NSWindowController). How is this coded in the NSWindowController class? I tried the following: let printAction = CustViewController.printCustomers(<#T##self: CustViewController##CustViewController#> ) but don't know how to code argument in this and this may be not be the way to do this?
Topic: UI Frameworks SubTopic: AppKit Tags:
5
0
741
Aug ’22
macOS TableView dynamic row height?
Environment is macOS Monterey Xcode 13. Is there a way to change the behavior of a macOS NSTableView to have the row height change based on the contents of a column. As an example when populating the column data and the width of the content exceeds the width of the column to have the content wrap to an additional line, which of course the row height would have to change then as well. If so, how can this be done? Thanks
1
0
1.3k
Aug ’22
NSGraphicsContext.current expression is ambiguous without more context
I am using the code below to learn more about drawing but I am getting an ambiguous error on the line not sure how to resolve this. Please advise how to code this. Thanks let context = NSGraphicsContext.current()?.cgContext  override func draw(_ dirtyRect: NSRect) {         super.draw(dirtyRect)        ** let context = NSGraphicsContext.current()?.cgContext**         let length = CGPoint(x: 100, y: 100)         let p1 = CGPoint(x: 200, y: 200)         let shape = "square"         context!.beginPath()         context!.move(to: p1)         if shape == "line" {             let pointEnd = CGPoint(x: p1.x + length.x, y: p1.y + length.y)             context!.addLine(to: pointEnd)         } else if shape == "square" {             let p2 = CGPoint(x: p1.x + length.x, y: p1.y)             let p3 = CGPoint(x: p1.x + length.x, y: p1.y + length.y)             let p4 = CGPoint(x: p1.x, y: p1.y + length.y)             context!.addLine(to: p2)             context!.addLine(to: p3)             context!.addLine(to: p4)             context!.addLine(to: p1)         }                 context!.setStrokeColor(red: 1, green: 1, blue: 1, alpha: 1.0)         context!.setFillColor(red: 0, green: 1, blue: 0, alpha: 1)         context!.setLineWidth(2.0)         context!.strokePath()                 let textColor = NSColor(calibratedRed: 1, green: 1, blue: 1, alpha: 1.0)         let textColorB = NSColor(calibratedRed: 1, green: 1, blue: 1, alpha: 0.0)         let rect = CGRect(x: 200, y: 200, width: 30, height: 130)         let paragraphStyle = NSMutableParagraphStyle()         paragraphStyle.alignment = .center         let attr = [NSAttributedString.Key.paragraphStyle: paragraphStyle, NSAttributedString.Key.foregroundColor: textColor, NSAttributedString.Key.backgroundColor: textColorB, NSAttributedString.Key.font:NSFont.init(name: "HelveticaNeue-Thin", size: 14)]               let q: NSString = "hello, world"         let center = CGPoint(x: 0, y: 0)         q.draw(at: center, withAttributes: attr as [NSAttributedString.Key : Any])     } }
1
0
896
Aug ’22
How to add headers programmatically to NSTableView
I have created programmatically a NSTableView with a couple of columns, this table view has 3 columns and I want to set headers for the columns to accomplish the same thing as you get when you selected headers in IB. I looked for some examples, found a few things but not really work for me. How is this done. It seems like this should be easy to code. This is an example of one of the examples I found. let headerCell = CustomTableHeaderCell.init(textCell: "123123") // let font = NSFont(name: "Arial", size: 22.0) // headerCell.stringValue = "firstname" // headerCell.font = font self.tableView.tableColumns[0].headerCell = headerCell But CustomTableHeaderCell is not found. How is this done?
Topic: UI Frameworks SubTopic: AppKit Tags:
1
0
1.1k
Aug ’22
Drawing an NSImage using COCOA Drawing
I have the test code below which draws a box with some text in it. I would like to add an image to the drawing. The function getCompanyLogo returns an NSImage and I would like to then add this image to the drawing. I have read apple's archive doc at the Drawing with COCOA but do not see how to complete this. How is this done? Thanks import Cocoa @IBDesignable class invoiceSectionTop: NSView {     override func draw(_ dirtyRect: NSRect) {         super.draw(dirtyRect)         let context = NSGraphicsContext.current?.cgContext         let length = CGPoint(x: 200, y: 50)         let p1 = CGPoint(x: 0, y: 50)         let shape = "square"         context!.beginPath()         context!.move(to: p1)         if shape == "line" {             let pointEnd = CGPoint(x: p1.x + length.x, y: p1.y + length.y)             context!.addLine(to: pointEnd)         } else if shape == "square" {             let p2 = CGPoint(x: p1.x + length.x, y: p1.y)             let p3 = CGPoint(x: p1.x + length.x, y: p1.y + length.y)             let p4 = CGPoint(x: p1.x, y: p1.y + length.y)             context!.addLine(to: p2)             context!.addLine(to: p3)             context!.addLine(to: p4)             context!.addLine(to: p1)         }         context!.setStrokeColor(red: 1, green: 1, blue: 1, alpha: 1.0)         context!.setFillColor(red: 0, green: 1, blue: 0, alpha: 1)         context!.setLineWidth(2.0)         context!.strokePath()         let image = getCompanyLogo()      // getCompanyLogo returns a NSImage object    //     NSGraphicsContext.current?.NSIm.draw(cgimage!, in: dirtyRect)         let textColor = NSColor(calibratedRed: 1, green: 1, blue: 1, alpha: 1.0)         let textColorB = NSColor(calibratedRed: 1, green: 1, blue: 1, alpha: 0.0)         let rect = CGRect(x: 200, y: 200, width: 30, height: 130)         let paragraphStyle = NSMutableParagraphStyle()         paragraphStyle.alignment = .center         let attr = [NSAttributedString.Key.paragraphStyle: paragraphStyle, NSAttributedString.Key.foregroundColor: textColor, NSAttributedString.Key.backgroundColor: textColorB, NSAttributedString.Key.font:NSFont.init(name: "HelveticaNeue-Thin", size: 14)]         let q: NSString = "hello, world"         let center = CGPoint(x: 0, y: 50)         q.draw(at: center, withAttributes: attr as [NSAttributedString.Key : Any])     } }
1
0
1.2k
Aug ’22
How to sort NSTableView Date Column?
I have a date column in a macOS NSTableView column in YYYY-MM-DD format and when using the code below the sort does not sort way I want. When sorting ascending. It has the year correct but the month is in reverse order. See image below. How can I fix this?  func sortInvoices(invoiceColumn: String, ascending: Bool) {          enum SortOrder {             static let Date = "invoiceDateCreated"             static let Number = "invoicenumber"             static let Customer = "invoicecustomer"             static let Status = "invoicestatus"         }         switch invoiceColumn {         case SortOrder.Date:            invoices.sort { (p1, p2) -> Bool in                guard let id1 = p1.invoiceDateBilled, let id2 = p2.invoiceDateBilled else { return true }                if ascending {                    return id1 < id2                } else {                    return id2 < id1                }            }
1
0
931
Sep ’22
NSPredicate format for date comparison
I have the following code to search a tableView. The contains format works fine for string arguments however can't seem to find the correct format to work with date arguments.   @objc func invoiceSearch(sender:NSSearchField) {     //    print ("\(#function): \(sender.stringValue)")             let searchString = sender.stringValue             var predicate:NSPredicate = NSPredicate()             if searchString.isEmpty {                 invoices = self.backUpInvoices             }             else{       // search field contains data                 if (invoiceSearchField.cell as? NSSearchFieldCell)?.placeholderString == "All" {                     predicate = NSPredicate(format: "invoiceNumber contains %@ OR invoiceCustName contains %@ OR invoiceStatus contains %@ OR invoiceDateCreated >= %@",searchString,searchString,searchString,searchString)                 }                 else if (invoiceSearchField.cell as? NSSearchFieldCell)?.placeholderString == "invoice Number" {                     predicate = NSPredicate(format: "invoiceNumber contains %@",searchString)                 }                 else if (invoiceSearchField.cell as? NSSearchFieldCell)?.placeholderString == "invoice Customer"{                     predicate = NSPredicate(format: "invoiceCustName contains %@",searchString)                 }                 else if (invoiceSearchField.cell as? NSSearchFieldCell)?.placeholderString == "invoice Status"{                     predicate = NSPredicate(format: "invoiceStatus contains %@",searchString)                 }                 else if (invoiceSearchField.cell as? NSSearchFieldCell)?.placeholderString == "Invoice Date"{                       predicate = NSPredicate(format: "invoiceDateCreated >= %@", searchString as CVarArg)                 }                 invoices = (self.backUpInvoices as NSArray).filtered(using: predicate) as! [Invoice]             }             invoiceCount = "Found \(items.count ) Invoices"             invoiceStatusLabel.stringValue = invoiceCount             self.tableView.reloadData()     } InvoiceDateCreated is defined by the following within a NSObject class: @objc   var invoiceDateCreated: Date? = Date() The error I get when trying to search on date is 2022-09-26 09:14:36.638553-0500 CashToMe[9107:6838576] [General] -[NSTaggedPointerString objCType]: unrecognized selector sent to instance I have read through the following documentation Apple Doc for NSPredicate How can I fix this. Also, if there is a better/newer way to code this I am open to changing the code. Thanks
4
0
2k
Sep ’22
How to create bar chart with two or more bars per time period
Environment: Xcode 14.1 beta 3 on macOS Ventura Beta 9. No longer need this, I found example of this. struct LocationsChart: View {     var body: some View {         Chart {             ForEach(seriesData, id: \.city) { series in                 ForEach(series.data, id: \.weekday) {                     BarMark(                         x: .value("Weekday", $0.weekday, unit: .day),                         y: .value("Sales", $0.sales)                     )                 }                 .foregroundStyle(by: .value("City", series.city))                 .position(by: .value("City", series.city))             }         }     }     let seriesData = [         (             city: "Cupertino", data: [                 (weekday: date(year: 2022, month: 5, day: 2), sales: 54),                 (weekday: date(year: 2022, month: 5, day: 3), sales: 42),                 (weekday: date(year: 2022, month: 5, day: 4), sales: 88),                 (weekday: date(year: 2022, month: 5, day: 5), sales: 49),                 (weekday: date(year: 2022, month: 5, day: 6), sales: 42),                 (weekday: date(year: 2022, month: 5, day: 7), sales: 125),                 (weekday: date(year: 2022, month: 5, day: 8), sales: 67)             ]         ),         (             city: "San Francisco", data: [                 (weekday: date(year: 2022, month: 5, day: 2), sales: 81),                 (weekday: date(year: 2022, month: 5, day: 3), sales: 90),                 (weekday: date(year: 2022, month: 5, day: 4), sales: 52),                 (weekday: date(year: 2022, month: 5, day: 5), sales: 72),                 (weekday: date(year: 2022, month: 5, day: 6), sales: 84),                 (weekday: date(year: 2022, month: 5, day: 7), sales: 84),                 (weekday: date(year: 2022, month: 5, day: 8), sales: 137)             ]         )     ] } func date(year: Int, month: Int, day: Int = 1) -> Date {     Calendar.current.date(from: DateComponents(year: year, month: month, day: day)) ?? Date() }
0
0
1.1k
Oct ’22
How to save an Image to NsData object and then retrieve.
My environment is as follows: Xcode 12, macOS BS developing a macOS app. I have an IBOutlet from a IB window as @IBOutlet weak var imageView: NSImageView! So, I want to store imageView to a NSData object and then save the NSData object in my UserDefaults. Once I saved the Image in my UserDefaults I need to be able to decode or retrieve the image for use in other parts of the app. How is this done? Also, I have seen some cautions about converting an Image to NSData object and retrieving. It seems the retrieved image may not be 100% as it was originally. Is this true and if so why? Thanks
Replies
2
Boosts
0
Views
1.2k
Activity
Jun ’21
Xcode 12 macOS not showing app icon
Anybody else having problems with app icon on Xcode 12 not showing up for a macOS app?
Replies
1
Boosts
1
Views
3.8k
Activity
Jun ’21
Xcode 13.2 and Github - No Packages listed
I connected Github to Xcode 13.2 (Monterey macOS) successfully, however I do not see any packages available when I select Github as the source. I did download Xcode 13.2 from the developers website and it did fix some problems I was having with Xcode from the App Store but did make any difference to the issue above. Anybody else have this issue with Xcode 13.2?
Replies
4
Boosts
0
Views
1.2k
Activity
Mar ’22
General Question using swiftCharts?
I have a macOS app which was built using Xcode 13 and storyboard. I want to add swiftCharts to the app. Can I add swiftCharts code to this app and not have to migrate the storyboard UI to swiftUI? How can this be done? Thanks
Replies
2
Boosts
0
Views
1k
Activity
Jun ’22
How to Activate Printer Panel
How do you activate the Printer Panel using a toolbar printer Icon in a macOS app like you get when I select File -> Print (CMD-P)? This is in a tableView view based screen. I have connected the first responder to "print:" thinking this might work but the printer Icon in the toolbar remains grayed-out. Also, tried connecting it to a @IBAction func but it still is grayed out. I am using Xcode 13 and 14 beta
Replies
0
Boosts
0
Views
391
Activity
Jul ’22
How to see current window?
Is there a way with code I can in a general routine, which gets activated with CMD+P that shows the name of the window that was previously in focus? If so, how is this done?
Topic: UI Frameworks SubTopic: AppKit Tags:
Replies
1
Boosts
0
Views
509
Activity
Aug ’22
How to call function in NSViewController?
class CustViewController: NSViewController { @IBOutlet weak var tableView: NSTableView! @IBOutlet weak var statusLabel: NSTextField! fileprivate var selectedOptionFromMenu = "" @objc var contacts:[Person] = [] @objc var backUpContacts:[Person] = [] @IBAction func printCustomers(_ sender: Any?) { I would like to call the printCustomers function in the CustViewController from another class (NSWindowController). How is this coded in the NSWindowController class? I tried the following: let printAction = CustViewController.printCustomers(<#T##self: CustViewController##CustViewController#> ) but don't know how to code argument in this and this may be not be the way to do this?
Topic: UI Frameworks SubTopic: AppKit Tags:
Replies
5
Boosts
0
Views
741
Activity
Aug ’22
macOS TableView dynamic row height?
Environment is macOS Monterey Xcode 13. Is there a way to change the behavior of a macOS NSTableView to have the row height change based on the contents of a column. As an example when populating the column data and the width of the content exceeds the width of the column to have the content wrap to an additional line, which of course the row height would have to change then as well. If so, how can this be done? Thanks
Replies
1
Boosts
0
Views
1.3k
Activity
Aug ’22
NSGraphicsContext.current expression is ambiguous without more context
I am using the code below to learn more about drawing but I am getting an ambiguous error on the line not sure how to resolve this. Please advise how to code this. Thanks let context = NSGraphicsContext.current()?.cgContext  override func draw(_ dirtyRect: NSRect) {         super.draw(dirtyRect)        ** let context = NSGraphicsContext.current()?.cgContext**         let length = CGPoint(x: 100, y: 100)         let p1 = CGPoint(x: 200, y: 200)         let shape = "square"         context!.beginPath()         context!.move(to: p1)         if shape == "line" {             let pointEnd = CGPoint(x: p1.x + length.x, y: p1.y + length.y)             context!.addLine(to: pointEnd)         } else if shape == "square" {             let p2 = CGPoint(x: p1.x + length.x, y: p1.y)             let p3 = CGPoint(x: p1.x + length.x, y: p1.y + length.y)             let p4 = CGPoint(x: p1.x, y: p1.y + length.y)             context!.addLine(to: p2)             context!.addLine(to: p3)             context!.addLine(to: p4)             context!.addLine(to: p1)         }                 context!.setStrokeColor(red: 1, green: 1, blue: 1, alpha: 1.0)         context!.setFillColor(red: 0, green: 1, blue: 0, alpha: 1)         context!.setLineWidth(2.0)         context!.strokePath()                 let textColor = NSColor(calibratedRed: 1, green: 1, blue: 1, alpha: 1.0)         let textColorB = NSColor(calibratedRed: 1, green: 1, blue: 1, alpha: 0.0)         let rect = CGRect(x: 200, y: 200, width: 30, height: 130)         let paragraphStyle = NSMutableParagraphStyle()         paragraphStyle.alignment = .center         let attr = [NSAttributedString.Key.paragraphStyle: paragraphStyle, NSAttributedString.Key.foregroundColor: textColor, NSAttributedString.Key.backgroundColor: textColorB, NSAttributedString.Key.font:NSFont.init(name: "HelveticaNeue-Thin", size: 14)]               let q: NSString = "hello, world"         let center = CGPoint(x: 0, y: 0)         q.draw(at: center, withAttributes: attr as [NSAttributedString.Key : Any])     } }
Replies
1
Boosts
0
Views
896
Activity
Aug ’22
How to add headers programmatically to NSTableView
I have created programmatically a NSTableView with a couple of columns, this table view has 3 columns and I want to set headers for the columns to accomplish the same thing as you get when you selected headers in IB. I looked for some examples, found a few things but not really work for me. How is this done. It seems like this should be easy to code. This is an example of one of the examples I found. let headerCell = CustomTableHeaderCell.init(textCell: "123123") // let font = NSFont(name: "Arial", size: 22.0) // headerCell.stringValue = "firstname" // headerCell.font = font self.tableView.tableColumns[0].headerCell = headerCell But CustomTableHeaderCell is not found. How is this done?
Topic: UI Frameworks SubTopic: AppKit Tags:
Replies
1
Boosts
0
Views
1.1k
Activity
Aug ’22
Customize NSTableView alternate rows color
I would like customize the nstableview alternate row color as light blue instead og light gray. How is this done? thanks
Replies
0
Boosts
0
Views
616
Activity
Aug ’22
Drawing an NSImage using COCOA Drawing
I have the test code below which draws a box with some text in it. I would like to add an image to the drawing. The function getCompanyLogo returns an NSImage and I would like to then add this image to the drawing. I have read apple's archive doc at the Drawing with COCOA but do not see how to complete this. How is this done? Thanks import Cocoa @IBDesignable class invoiceSectionTop: NSView {     override func draw(_ dirtyRect: NSRect) {         super.draw(dirtyRect)         let context = NSGraphicsContext.current?.cgContext         let length = CGPoint(x: 200, y: 50)         let p1 = CGPoint(x: 0, y: 50)         let shape = "square"         context!.beginPath()         context!.move(to: p1)         if shape == "line" {             let pointEnd = CGPoint(x: p1.x + length.x, y: p1.y + length.y)             context!.addLine(to: pointEnd)         } else if shape == "square" {             let p2 = CGPoint(x: p1.x + length.x, y: p1.y)             let p3 = CGPoint(x: p1.x + length.x, y: p1.y + length.y)             let p4 = CGPoint(x: p1.x, y: p1.y + length.y)             context!.addLine(to: p2)             context!.addLine(to: p3)             context!.addLine(to: p4)             context!.addLine(to: p1)         }         context!.setStrokeColor(red: 1, green: 1, blue: 1, alpha: 1.0)         context!.setFillColor(red: 0, green: 1, blue: 0, alpha: 1)         context!.setLineWidth(2.0)         context!.strokePath()         let image = getCompanyLogo()      // getCompanyLogo returns a NSImage object    //     NSGraphicsContext.current?.NSIm.draw(cgimage!, in: dirtyRect)         let textColor = NSColor(calibratedRed: 1, green: 1, blue: 1, alpha: 1.0)         let textColorB = NSColor(calibratedRed: 1, green: 1, blue: 1, alpha: 0.0)         let rect = CGRect(x: 200, y: 200, width: 30, height: 130)         let paragraphStyle = NSMutableParagraphStyle()         paragraphStyle.alignment = .center         let attr = [NSAttributedString.Key.paragraphStyle: paragraphStyle, NSAttributedString.Key.foregroundColor: textColor, NSAttributedString.Key.backgroundColor: textColorB, NSAttributedString.Key.font:NSFont.init(name: "HelveticaNeue-Thin", size: 14)]         let q: NSString = "hello, world"         let center = CGPoint(x: 0, y: 50)         q.draw(at: center, withAttributes: attr as [NSAttributedString.Key : Any])     } }
Replies
1
Boosts
0
Views
1.2k
Activity
Aug ’22
How to sort NSTableView Date Column?
I have a date column in a macOS NSTableView column in YYYY-MM-DD format and when using the code below the sort does not sort way I want. When sorting ascending. It has the year correct but the month is in reverse order. See image below. How can I fix this?  func sortInvoices(invoiceColumn: String, ascending: Bool) {          enum SortOrder {             static let Date = "invoiceDateCreated"             static let Number = "invoicenumber"             static let Customer = "invoicecustomer"             static let Status = "invoicestatus"         }         switch invoiceColumn {         case SortOrder.Date:            invoices.sort { (p1, p2) -> Bool in                guard let id1 = p1.invoiceDateBilled, let id2 = p2.invoiceDateBilled else { return true }                if ascending {                    return id1 < id2                } else {                    return id2 < id1                }            }
Replies
1
Boosts
0
Views
931
Activity
Sep ’22
NSPredicate format for date comparison
I have the following code to search a tableView. The contains format works fine for string arguments however can't seem to find the correct format to work with date arguments.   @objc func invoiceSearch(sender:NSSearchField) {     //    print ("\(#function): \(sender.stringValue)")             let searchString = sender.stringValue             var predicate:NSPredicate = NSPredicate()             if searchString.isEmpty {                 invoices = self.backUpInvoices             }             else{       // search field contains data                 if (invoiceSearchField.cell as? NSSearchFieldCell)?.placeholderString == "All" {                     predicate = NSPredicate(format: "invoiceNumber contains %@ OR invoiceCustName contains %@ OR invoiceStatus contains %@ OR invoiceDateCreated >= %@",searchString,searchString,searchString,searchString)                 }                 else if (invoiceSearchField.cell as? NSSearchFieldCell)?.placeholderString == "invoice Number" {                     predicate = NSPredicate(format: "invoiceNumber contains %@",searchString)                 }                 else if (invoiceSearchField.cell as? NSSearchFieldCell)?.placeholderString == "invoice Customer"{                     predicate = NSPredicate(format: "invoiceCustName contains %@",searchString)                 }                 else if (invoiceSearchField.cell as? NSSearchFieldCell)?.placeholderString == "invoice Status"{                     predicate = NSPredicate(format: "invoiceStatus contains %@",searchString)                 }                 else if (invoiceSearchField.cell as? NSSearchFieldCell)?.placeholderString == "Invoice Date"{                       predicate = NSPredicate(format: "invoiceDateCreated >= %@", searchString as CVarArg)                 }                 invoices = (self.backUpInvoices as NSArray).filtered(using: predicate) as! [Invoice]             }             invoiceCount = "Found \(items.count ) Invoices"             invoiceStatusLabel.stringValue = invoiceCount             self.tableView.reloadData()     } InvoiceDateCreated is defined by the following within a NSObject class: @objc   var invoiceDateCreated: Date? = Date() The error I get when trying to search on date is 2022-09-26 09:14:36.638553-0500 CashToMe[9107:6838576] [General] -[NSTaggedPointerString objCType]: unrecognized selector sent to instance I have read through the following documentation Apple Doc for NSPredicate How can I fix this. Also, if there is a better/newer way to code this I am open to changing the code. Thanks
Replies
4
Boosts
0
Views
2k
Activity
Sep ’22
How to create bar chart with two or more bars per time period
Environment: Xcode 14.1 beta 3 on macOS Ventura Beta 9. No longer need this, I found example of this. struct LocationsChart: View {     var body: some View {         Chart {             ForEach(seriesData, id: \.city) { series in                 ForEach(series.data, id: \.weekday) {                     BarMark(                         x: .value("Weekday", $0.weekday, unit: .day),                         y: .value("Sales", $0.sales)                     )                 }                 .foregroundStyle(by: .value("City", series.city))                 .position(by: .value("City", series.city))             }         }     }     let seriesData = [         (             city: "Cupertino", data: [                 (weekday: date(year: 2022, month: 5, day: 2), sales: 54),                 (weekday: date(year: 2022, month: 5, day: 3), sales: 42),                 (weekday: date(year: 2022, month: 5, day: 4), sales: 88),                 (weekday: date(year: 2022, month: 5, day: 5), sales: 49),                 (weekday: date(year: 2022, month: 5, day: 6), sales: 42),                 (weekday: date(year: 2022, month: 5, day: 7), sales: 125),                 (weekday: date(year: 2022, month: 5, day: 8), sales: 67)             ]         ),         (             city: "San Francisco", data: [                 (weekday: date(year: 2022, month: 5, day: 2), sales: 81),                 (weekday: date(year: 2022, month: 5, day: 3), sales: 90),                 (weekday: date(year: 2022, month: 5, day: 4), sales: 52),                 (weekday: date(year: 2022, month: 5, day: 5), sales: 72),                 (weekday: date(year: 2022, month: 5, day: 6), sales: 84),                 (weekday: date(year: 2022, month: 5, day: 7), sales: 84),                 (weekday: date(year: 2022, month: 5, day: 8), sales: 137)             ]         )     ] } func date(year: Int, month: Int, day: Int = 1) -> Date {     Calendar.current.date(from: DateComponents(year: year, month: month, day: day)) ?? Date() }
Replies
0
Boosts
0
Views
1.1k
Activity
Oct ’22