API_UNAVAILABLE_BEGIN(ios)
.[NSApplication sharedInstance]
as you might expect in AppKit, and it lists your app's windows just like it would for any NSWindow in an AppKit app. This gives you a bridge to modify your app window in ways that otherwise Catalyst makes impossible, like changing the window style mask, setting its position & frame onscreen, and setting a minimum/maximum window size.representedURL
or representedFilename
on your primary window to add a proxy icon to your currently open document. This will add an icon to your window titlebar to represent the document you point to, and a user can drag and drop from this proxy icon to another app or somewhere in Finder. You can also command-click the proxy icon to show the document's full path.NSColorPanel
in your UIKit app, so that you get a rich, native color picker and use it to drive your UIKit UI.NSWorkspace
to move items to the trash, reveal a file in Finder, or load the icon for a file from disk, among many other things.NSTask
allows you to run shell commands or command-line apps, and pipe things between processes. With an AppKit bundle, your UIKit app can support these interactions too.aeInstallRunLoopDispatcher();
call in -setupAppleEvents
, as Apple Events are already set up as you might expect for AppKit.curl
a URL and untar
it, or to run ffmpeg
to convert a local video file. A sandboxed Terminal doesn't need to let you mess with the system or other apps, or provide ways to execute unsigned code or kill processes; it should be able to live in its own jail and let you do whatever you want inside it in much the same way as a GUI user gets to do whatever they want in Shortcuts while maintaining the safety and security of the OS.