Posts

Post marked as solved
3 Replies
4.9k Views
I have a project that requires a fixed window size. In previous versions of Xcode when I compile the project with the following : struct MyApp: App {     var body: some Scene {         WindowGroup {             ContentView()                 .frame(width: 800, height: 600)         }     } } It will result in a window with a fixed size of 800x600 (i.e. the window inherits the fixed content size) With Xcode 14 and macOS Ventura, this is no longer the case. The above code compiles but now the window is resizable, with the content inhabiting an 800x600 area. In Ventura there is the   .windowResizability(.contentSize) property but this is macOS 13 only. I need my app to be able to support macOS 11 and 12 and now the window behaviour is broken with the latest Xcode. Is there any way to get around this that doesn't involve running a seperate macOS 12/Xcode 13 environment?
Posted
by El Barto.
Last updated
.
Post marked as solved
1 Replies
458 Views
I have an app that I would like to register a launchd agent at the login window. my plist looks like this: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>RunAtLoad</key> <true/> <key>LimitLoadToSessionType</key> <array> <string>LoginWindow</string> </array> <key>AssociatedBundleIdentifiers</key> <string>com.myapp</string> <key>Label</key> <string>com.myapp.login-window</string> <key>ProgramArguments</key> <array> <string>/usr/local/myapp.app/Contents/MacOS/myapp-agent</string> <string>--login-window-agent</string> </array> </dict> </plist> If I manually copy the com.myapp.loginwindow.plist to /Library/LaunchAgents and load it manually it works as I'd expect If I use SMAppService though it does not work: let service = SMAppService.agent(plistName: "com.myapp.login-window.plist") do { try service.register() } catch let error { print(error.localizedDescription) } I get: The operation couldn’t be completed. Service cannot load in requested session. That makes sense as I'm not at the login window when I run that routine. However checking service.status() (with formatting) I get LaunchAgent(com.myapp.login-window.plist) status: Enabled which would suggest that it's loaded, yet when I log out or reboot and I'm at the login window the agent is not running. Indeed the agent does not appear in launchctl list I'm not sure what else to check to see what's going on. I've tested loading LaunchAgents and LaunchDaemons in other contexts using the ServiceManagement framework and these all work as I'd expect once approved. It's just the LoginWindow agent that is having issues.
Posted
by El Barto.
Last updated
.
Post not yet marked as solved
0 Replies
335 Views
I'm trying to get a swiftui application to display at the macos login window. I can set canBecomeVisibleWithoutLogin but it appears that the code execution doesn't even get that far. When running, all the code in my App { init() method gets executed but anything in : var body: some Scene { WindowGroup { ... never runs. is this a limitation of the SwiftUI app lifecycle in this environment?
Posted
by El Barto.
Last updated
.
Post not yet marked as solved
0 Replies
452 Views
I'm making a command line utility and I'd like to check the Focus (nee do not disturb) status which requires the Communications Notifications entitlement as per https://developer.apple.com/forums/thread/682143 The utility itself is not sandboxed. as there is no app bundle, is there a way to assign or embed the entitlement into the binary so I can get access to things like INFocusStatusCenter.default.focusStatus.isFocused (if indeed that is relevant in macOS 12)
Posted
by El Barto.
Last updated
.