Thanks Chad! Please post your feedback reference so I can file a bug on my end as well!
Post
Replies
Boosts
Views
Activity
How is ScalingMode defined ? Just an enum ?
Yes:
enum ScalingMode: Int {
case scaled
case actualSize
}
So didSet is allowed but you're not able to do much with it as you cannot make any reference to self or any of it's members:
Cannot find 'self' in scope; did you mean to use it in a type or extension context?
Instance member 'scalingMode' cannot be used on type 'MySettings'; did you mean to use a value of this type instead?
Someone suggested this solution:
Text(Image(systemName: "desktopcomputer")) + Text(verbatim: " ") + Text(computer.name)
Not great but at least it works. I think this should be addressed by the SwiftUI team.
Apple folks: FB12004569
Apple folks: FB11983812
I have the same problem for one of my projects. aps-environment is set to development but it receives a production token. Anything else could be triggering this?
If you set labelStyle to titleOnly, then the shortcut will show in the list:
Button {
// Do something
} label: {
Label("New", systemImage: "plus")
.labelStyle(.titleOnly)
}
Still, that shouldn't make a difference.
Apple folks: FB11889812
Apple folks: FB11887007
Apple folks: FB11876396
Another solution that seems to work is to use NSViewControllerRepresentable to create a NSViewController based view. When viewDidAppear is called, you can set the NSWindowDelegate to self to receive window events and set the aspect ratio.
Turns out all you need to do is set LSSupportsOpeningDocumentsInPlace to true in your app's info.plist
I would tend to think that the issue is with the try! statement. write(to:) can throw, which is probably the case here. Force unwrapping probably causes the crash.
Here's an example of an implementation that works (at least on my end):
static var transferRepresentation: some TransferRepresentation {
FileRepresentation(contentType: .myArchive) { archive in
let url = URL(fileURLWithPath: NSTemporaryDirectory(), isDirectory: true).appendingPathComponent(archive.fileName)
let res = try JSONEncoder().encode(archive)
try res.write(to: url, options: .atomicWrite)
return SentTransferredFile(url)
} importing: { received in
let data = try Data(contentsOf: received.file)
return try JSONDecoder().decode(MyArchive.self, from: data)
}
}
Ok so I made some progress. Turns out I was using com.public.data instead of public.data in Exported Type Identifier > Conform To.
So now saving to files will use the proper file extension (.cararchive) I've set in Exported Type Identifier > Extensions.
However, the filename defaults to what I've set in Exported Type Identifier > Description. I'd like to set a default name myself as the one used by iOS makes no sense.
Additionally, if I use my custom type instead of .json when exporting, the "Save to Files" doesn't even show up, even if I did set the export type in the info.plist file.
extension UTType {
static var car: UTType = UTType(exportedAs: "com.acme.cararchive")
}
extension Car: Transferable {
static var transferRepresentation: some TransferRepresentation {
DataRepresentation(contentType: .car) { archive in
try JSONEncoder().encode(archive)
} importing: { data in
try JSONDecoder().decode(Car.self, from: data)
}
}
}
fefe