Skip to content

Instantly share code, notes, and snippets.

@vs-mobiletools-engineering-service2
Created May 11, 2023 09:10
stable-api-comparison/mac-api-diff.md
title description author ms.author ms.date ms.topic ms.assetid ms.prod
Xamarin.Mac SDK API diff: 9.0.0 vs 9.4.0
List of API changes between Xamarin.Mac versions 9.0.0 and 9.4.0.
spouliot
sepoulio
5/11/2023
article
dac0ed8b-8e06-5965-cc9e-780bf547c6bf
xamarin

Xamarin.Mac SDK API diff: 9.0.0 vs 9.4.0

Namespace AVFoundation

Type Changed: AVFoundation.AVAssetWriter

Obsoleted properties:

 [Obsolete ("Use the 'Inputs' property instead.")]
 public virtual AVAssetWriterInput[] inputs { get; }

Added property:

public virtual AVAssetWriterInput[] Inputs { get; }

Type Changed: AVFoundation.AVAudioSinkNode

Obsoleted constructors:

 [Obsolete ("Use the overload that takes a delegate that does not take a 'ref AudioBuffers' instead. Assigning a value to the 'inputData' parameter in the callback has no effect.")]
 public AVAudioSinkNode (AVAudioSinkNodeReceiverHandler receiverHandler);

Added constructors:

public AVAudioSinkNode (AVAudioSinkNodeReceiverHandler2 receiverHandler);
public AVAudioSinkNode (AVAudioSinkNodeReceiverHandlerRaw receiverHandler);

Type Changed: AVFoundation.AVCaptureDeviceFormat

Added properties:

public virtual nfloat[] SecondaryNativeResolutionZoomFactors { get; }
public virtual CoreMedia.CMVideoDimensions[] SupportedMaxPhotoDimensions { get; }
public virtual nfloat[] SupportedVideoZoomFactorsForDepthDataDelivery { get; }

Type Changed: AVFoundation.AVCapturePhotoOutput

Added properties:

public virtual bool IsHighResolutionCaptureEnabled { get; set; }
public virtual CoreMedia.CMVideoDimensions MaxPhotoDimensions { get; set; }
public virtual bool PreservesLivePhotoCaptureSuspendedOnSessionStop { get; set; }

Type Changed: AVFoundation.AVCapturePhotoSettings

Added property:

public virtual CoreMedia.CMVideoDimensions MaxPhotoDimensions { get; set; }

Type Changed: AVFoundation.AVMetadata

Obsoleted properties:

 [Obsolete ("Use 'AVMetadataFormat' enum values.")]
 public static Foundation.NSString FormatHlsMetadata { get; }
 [Obsolete ("Use 'AVMetadataFormat' enum values.")]
 public static Foundation.NSString FormatID3Metadata { get; }
 [Obsolete ("Use 'AVMetadataFormat' enum values.")]
 public static Foundation.NSString FormatQuickTimeUserData { get; }
 [Obsolete ("Use 'AVMetadataFormat' enum values.")]
 public static Foundation.NSString FormatiTunesMetadata { get; }
 [Obsolete ("Use 'AVMetadataFormat' enum values.")]
 public static Foundation.NSString KFormatISOUserData { get; }

Type Changed: AVFoundation.AVPlayer

Obsoleted properties:

 [Obsolete ("Use 'AVPlayerWaitingReason' enum instead.")]
 public static Foundation.NSString AVPlayerWaitingForCoordinatedPlaybackReason { get; }
 [Obsolete ("Use 'AVPlayerWaitingReason' enum instead.")]
 public static Foundation.NSString WaitingDuringInterstitialEventReason { get; }
 [Obsolete ("Use 'AVPlayerWaitingReason' enum instead.")]
 public static Foundation.NSString WaitingToMinimizeStallsReason { get; }
 [Obsolete ("Use 'AVPlayerWaitingReason' enum instead.")]
 public static Foundation.NSString WaitingWhileEvaluatingBufferingRateReason { get; }
 [Obsolete ("Use 'AVPlayerWaitingReason' enum instead.")]
 public static Foundation.NSString WaitingWithNoItemToPlayReason { get; }

New Type: AVFoundation.AVAudioSinkNodeReceiverHandler2

public sealed delegate AVAudioSinkNodeReceiverHandler2 : System.MulticastDelegate {
	// constructors
	public AVAudioSinkNodeReceiverHandler2 (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (AudioToolbox.AudioTimeStamp timestamp, uint frameCount, AudioToolbox.AudioBuffers inputData, System.AsyncCallback callback, object object);
	public virtual int EndInvoke (System.IAsyncResult result);
	public virtual int Invoke (AudioToolbox.AudioTimeStamp timestamp, uint frameCount, AudioToolbox.AudioBuffers inputData);
}

New Type: AVFoundation.AVAudioSinkNodeReceiverHandlerRaw

public sealed delegate AVAudioSinkNodeReceiverHandlerRaw : System.MulticastDelegate {
	// constructors
	public AVAudioSinkNodeReceiverHandlerRaw (object object, IntPtr method);
	// methods
	public virtual System.IAsyncResult BeginInvoke (IntPtr timestamp, uint frameCount, IntPtr inputData, System.AsyncCallback callback, object object);
	public virtual int EndInvoke (System.IAsyncResult result);
	public virtual int Invoke (IntPtr timestamp, uint frameCount, IntPtr inputData);
}

Namespace AppKit

Type Changed: AppKit.NSAccessibilityAttributes

Obsoleted properties:

 [Obsolete ("Use 'TopLevelUIElementAttribute' instead.")]
 public static Foundation.NSString ToplevelUIElementAttribute { get; }

Type Changed: AppKit.NSAccessibilityNotifications

Obsoleted properties:

 [Obsolete ("Use the 'Notifications.AnnouncementRequestedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString AnnouncementRequestedNotification { get; }
 [Obsolete ("Use the 'Notifications.ApplicationActivatedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString ApplicationActivatedNotification { get; }
 [Obsolete ("Use the 'Notifications.ApplicationDeactivatedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString ApplicationDeactivatedNotification { get; }
 [Obsolete ("Use the 'Notifications.ApplicationHiddenNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString ApplicationHiddenNotification { get; }
 [Obsolete ("Use the 'Notifications.ApplicationShownNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString ApplicationShownNotification { get; }
 [Obsolete ("Use the 'Notifications.CreatedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString CreatedNotification { get; }
 [Obsolete ("Use the 'Notifications.DrawerCreatedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString DrawerCreatedNotification { get; }
 [Obsolete ("Use the 'Notifications.FocusedWindowChangedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString FocusedWindowChangedNotification { get; }
 [Obsolete ("Use the 'Notifications.HelpTagCreatedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString HelpTagCreatedNotification { get; }
 [Obsolete ("Use the 'Notifications.LayoutChangedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString LayoutChangedNotification { get; }
 [Obsolete ("Use the 'Notifications.MainWindowChangedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString MainWindowChangedNotification { get; }
 [Obsolete ("Use the 'Notifications.MovedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString MovedNotification { get; }
 [Obsolete ("Use the 'Notifications.ResizedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString ResizedNotification { get; }
 [Obsolete ("Use the 'Notifications.RowCollapsedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString RowCollapsedNotification { get; }
 [Obsolete ("Use the 'Notifications.RowCountChangedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString RowCountChangedNotification { get; }
 [Obsolete ("Use the 'Notifications.RowExpandedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString RowExpandedNotification { get; }
 [Obsolete ("Use the 'Notifications.SelectedCellsChangedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString SelectedCellsChangedNotification { get; }
 [Obsolete ("Use the 'Notifications.SelectedChildrenChangedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString SelectedChildrenChangedNotification { get; }
 [Obsolete ("Use the 'Notifications.SelectedChildrenMovedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString SelectedChildrenMovedNotification { get; }
 [Obsolete ("Use the 'Notifications.SelectedColumnsChangedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString SelectedColumnsChangedNotification { get; }
 [Obsolete ("Use the 'Notifications.SelectedRowsChangedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString SelectedRowsChangedNotification { get; }
 [Obsolete ("Use the 'Notifications.SelectedTextChangedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString SelectedTextChangedNotification { get; }
 [Obsolete ("Use the 'Notifications.SheetCreatedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString SheetCreatedNotification { get; }
 [Obsolete ("Use the 'Notifications.TitleChangedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString TitleChangedNotification { get; }
 [Obsolete ("Use the 'Notifications.UIElementDestroyedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString UIElementDestroyedNotification { get; }
 [Obsolete ("Use the 'Notifications.UIElementFocusedChangedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString UIElementFocusedChangedNotification { get; }
 [Obsolete ("Use the 'Notifications.UnitsChangedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString UnitsChangedNotification { get; }
 [Obsolete ("Use the 'Notifications.ValueChangedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString ValueChangedNotification { get; }
 [Obsolete ("Use the 'Notifications.WindowCreatedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString WindowCreatedNotification { get; }
 [Obsolete ("Use the 'Notifications.WindowDeminiaturizedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString WindowDeminiaturizedNotification { get; }
 [Obsolete ("Use the 'Notifications.WindowMiniaturizedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString WindowMiniaturizedNotification { get; }
 [Obsolete ("Use the 'Notifications.WindowMovedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString WindowMovedNotification { get; }
 [Obsolete ("Use the 'Notifications.WindowResizedNotification' helper method instead on the accessibility item in question.")]
 public static Foundation.NSString WindowResizedNotification { get; }

Type Changed: AppKit.NSButton

Added method:

protected override void Dispose (bool disposing);

Type Changed: AppKit.NSDocument

Added property:

public virtual INSPreviewRepresentableActivityItem[] PreviewRepresentableActivityItems { get; set; }

Type Changed: AppKit.NSKey

Added values:

F17 = 64,
RightCommand = 54,

Type Changed: AppKit.NSRemoteNotifications_NSApplication

Obsoleted properties:

 [Obsolete ("Use 'NSApplication.LaunchUserNotificationKey' instead.")]
 public static Foundation.NSString NSApplicationLaunchUserNotificationKey { get; }

Type Changed: AppKit.NSRulerView

Added property:

public Foundation.NSString WeakMeasurementUnits { get; set; }

Type Changed: AppKit.NSTextList

Added constructors:

public NSTextList (NSTextListMarkerFormats format);
public NSTextList (string format);

Obsoleted properties:

 [Obsolete ("Use 'CustomMarkerFormat' instead.")]
 public virtual string MarkerFormat { get; }

Added property:

public string CustomMarkerFormat { get; }

Type Changed: AppKit.NSTextListMarkerFormats

Added value:

CustomString = -1,

Type Changed: AppKit.NSTextListOptions

Added value:

None = 0,

Type Changed: AppKit.NSWindow

Obsoleted fields:

 [Obsolete ("Set 'TrackReleasedWhenClosed' and call 'ReleaseWhenClosed()' instead.")]
 public static bool DisableReleasedWhenClosedInConstructor;

Obsoleted properties:

 [Obsolete ("Call 'ReleaseWhenClosed ()' instead.")]
 public virtual bool ReleasedWhenClosed { get; set; }

Added properties:

public bool DangerousReleasedWhenClosed { get; set; }
public virtual bool HasActiveWindowSharingSession { get; }
public static bool TrackReleasedWhenClosed { get; set; }

Added methods:

public void ReleaseWhenClosed (bool value);
public virtual void TransferWindowSharing (NSWindow window, System.Action<Foundation.NSError> completionHandler);
public virtual System.Threading.Tasks.Task TransferWindowSharingAsync (NSWindow window);

Type Changed: AppKit.NSWindowController

Added property:

public virtual INSPreviewRepresentableActivityItem[] PreviewRepresentableActivityItems { get; set; }

Type Changed: AppKit.NSWindowDelegate

Added method:

public virtual INSPreviewRepresentableActivityItem[] GetPreviewRepresentableActivityItems (NSWindow window);

Type Changed: AppKit.NSWindowDelegate_Extensions

Added method:

public static INSPreviewRepresentableActivityItem[] GetPreviewRepresentableActivityItems (this INSWindowDelegate This, NSWindow window);

Namespace AuthenticationServices

New Type: AuthenticationServices.ASAuthorizationWebBrowserPlatformPublicKeyCredential

public class ASAuthorizationWebBrowserPlatformPublicKeyCredential : Foundation.NSObject {
	// constructors
	protected ASAuthorizationWebBrowserPlatformPublicKeyCredential (Foundation.NSObjectFlag t);
	protected ASAuthorizationWebBrowserPlatformPublicKeyCredential (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual Foundation.NSData CredentialId { get; }
	public virtual string Name { get; }
	public virtual string RelyingParty { get; }
	public virtual Foundation.NSData UserHandle { get; }
}

New Type: AuthenticationServices.ASAuthorizationWebBrowserPublicKeyCredentialManager

public class ASAuthorizationWebBrowserPublicKeyCredentialManager : Foundation.NSObject {
	// constructors
	public ASAuthorizationWebBrowserPublicKeyCredentialManager ();
	protected ASAuthorizationWebBrowserPublicKeyCredentialManager (Foundation.NSObjectFlag t);
	protected ASAuthorizationWebBrowserPublicKeyCredentialManager (IntPtr handle);
	// properties
	public virtual ASAuthorizationWebBrowserPublicKeyCredentialManagerAuthorizationState AuthorizationStateForPlatformCredentials { get; }
	public override IntPtr ClassHandle { get; }
	// methods
	public virtual void GetPlatformCredentials (string relyingParty, System.Action<ASAuthorizationWebBrowserPlatformPublicKeyCredential[]> completionHandler);
	public virtual System.Threading.Tasks.Task<ASAuthorizationWebBrowserPlatformPublicKeyCredential[]> GetPlatformCredentialsAsync (string relyingParty);
	public virtual void RequestAuthorization (System.Action<ASAuthorizationWebBrowserPublicKeyCredentialManagerAuthorizationState> completionHandler);
	public virtual System.Threading.Tasks.Task<ASAuthorizationWebBrowserPublicKeyCredentialManagerAuthorizationState> RequestAuthorizationAsync ();
}

New Type: AuthenticationServices.ASAuthorizationWebBrowserPublicKeyCredentialManagerAuthorizationState

[Serializable]
public enum ASAuthorizationWebBrowserPublicKeyCredentialManagerAuthorizationState {
	Authorized = 0,
	Denied = 1,
	NotDetermined = 2,
}

New Type: AuthenticationServices.IASAuthorizationWebBrowserExternallyAuthenticatableRequest

public interface IASAuthorizationWebBrowserExternallyAuthenticatableRequest : ObjCRuntime.INativeObject, System.IDisposable {
	// properties
	public virtual LocalAuthentication.LAContext AuthenticatedContext { get; set; }
}

Namespace BackgroundAssets

Type Changed: BackgroundAssets.BAAppExtensionInfo

Added property:

public virtual Foundation.NSNumber RestrictedEssentialDownloadSizeRemaining { get; }

Type Changed: BackgroundAssets.BADownload

Added property:

public virtual bool IsEssential { get; }

Added method:

public virtual BADownload CopyAsNonEssential ();

Type Changed: BackgroundAssets.BADownloadManager

Added method:

public virtual BADownload[] FetchCurrentDownloads (out Foundation.NSError error);

Type Changed: BackgroundAssets.BAUrlDownload

Added constructors:

public BAUrlDownload (string identifier, Foundation.NSUrlRequest request, nuint fileSize, string applicationGroupIdentifier);
public BAUrlDownload (string identifier, Foundation.NSUrlRequest request, bool essential, nuint fileSize, string applicationGroupIdentifier, nint priority);

Namespace CoreAnimation

Type Changed: CoreAnimation.CAAnimation

Obsoleted properties:

 [Obsolete ("The name has been fixed, use 'AnimationDiscrete' instead.")]
 public static Foundation.NSString AnimationDescrete { get; }

Type Changed: CoreAnimation.CAEdrMetadata

Added constructor:

public CAEdrMetadata (Foundation.NSCoder coder);

Added interfaces:

Foundation.INSCoding
Foundation.INSCopying
Foundation.INSSecureCoding
ObjCRuntime.INativeObject
System.IDisposable

Added property:

public static bool Available { get; }

Added methods:

public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
public virtual void EncodeTo (Foundation.NSCoder encoder);

Type Changed: CoreAnimation.CAGradientLayer

Obsoleted properties:

 [Obsolete ("Use 'CAGradientLayerType.Axial' enum instead.")]
 public static Foundation.NSString GradientLayerAxial { get; }

Type Changed: CoreAnimation.CAMetalLayer

Added properties:

public virtual Foundation.NSDictionary DeveloperHudProperties { get; set; }
public virtual bool WantsExtendedDynamicRangeContent { get; set; }

Namespace CoreBluetooth

Type Changed: CoreBluetooth.CBCentralManager

Obsoleted properties:

 [Obsolete ("Use 'CBConnectPeripheralOptions' instead.")]
 public static Foundation.NSString OptionNotifyOnConnectionKey { get; }
 [Obsolete ("Use 'CBConnectPeripheralOptions' instead.")]
 public static Foundation.NSString OptionNotifyOnDisconnectionKey { get; }
 [Obsolete ("Use 'CBConnectPeripheralOptions' instead.")]
 public static Foundation.NSString OptionNotifyOnNotificationKey { get; }

Namespace CoreData

Type Changed: CoreData.NSPersistentStoreCoordinator

Obsoleted properties:

 [Obsolete ("Use 'UbiquitousContainerIdentifierKey' instead.")]
 public static Foundation.NSString eUbiquitousContainerIdentifierKey { get; }

Namespace CoreFoundation

Type Changed: CoreFoundation.CFSocket

Added properties:

public System.Net.IPEndPoint Address { get; }
public System.Net.IPEndPoint RemoteAddress { get; }

Added method:

public void Invalidate ();

Namespace CoreGraphics

Type Changed: CoreGraphics.CGColorSpaceNames

Obsoleted properties:

 [Obsolete ("Now accessible as AdobeRgb1998.")]
 public static Foundation.NSString AdobeRGB1998 { get; }
 [Obsolete ("Now accessible as GenericCmyk.")]
 public static Foundation.NSString GenericCMYK { get; }
 [Obsolete ("Now accessible as GenericRgb.")]
 public static Foundation.NSString GenericRGB { get; }
 [Obsolete ("Now accessible as GenericRgb.")]
 public static Foundation.NSString GenericRGBLinear { get; }
 [Obsolete ("Now accessible as Srgb.")]
 public static Foundation.NSString SRGB { get; }

Type Changed: CoreGraphics.CGEvent

Obsoleted methods:

 [Obsolete ("The location parameter is not used. Consider using the overload without the location parameter.")]
 public static CoreFoundation.CFMachPort CreateTap (IntPtr processSerialNumber, CGEventTapLocation location, CGEventTapPlacement place, CGEventTapOptions options, CGEventMask mask, CGEvent.CGEventTapCallback cback, IntPtr data);

Added method:

public static CoreFoundation.CFMachPort CreateTap (IntPtr processSerialNumber, CGEventTapPlacement place, CGEventTapOptions options, CGEventMask mask, CGEvent.CGEventTapCallback cback, IntPtr data);

Type Changed: CoreGraphics.CGImagePropertiesGps

Added properties:

public string LatitudeRef { get; set; }
public string LongitudeRef { get; set; }

Namespace CoreWlan

Type Changed: CoreWlan.CWChannelBand

Added value:

SixGHz = 3,

Namespace FileProvider

Type Changed: FileProvider.NSFileProviderDomain

Added property:

public virtual Foundation.NSUuid VolumeUuid { get; }

Namespace Foundation

Type Changed: Foundation.NSAttributedString

Added constructors:

public NSAttributedString (NSData data, out NSError error);
public NSAttributedString (NSUrl url, out NSError error);
public NSAttributedString (NSData data, NSAttributedStringDocumentAttributes documentAttributes, out NSError error);
public NSAttributedString (NSUrl url, NSAttributedStringDocumentAttributes documentAttributes, out NSError error);

Type Changed: Foundation.NSAttributedStringDocumentAttributes

Added properties:

public AppKit.NSColor BackgroundColor { get; set; }
public float? DefaultTabInterval { get; set; }
public float? HyphenationFactor { get; set; }
public CoreGraphics.CGSize? PaperSize { get; set; }
public bool? ReadOnly { get; set; }
public NSDocumentViewMode? ViewMode { get; set; }
public CoreGraphics.CGSize? ViewSize { get; set; }
public float? ViewZoom { get; set; }

Type Changed: Foundation.NSBundle

Obsoleted properties:

 [Obsolete ("Use the 'AllBundles' property instead.")]
 public static NSBundle[] _AllBundles { get; }

Added property:

public static NSBundle[] AllBundles { get; }

Type Changed: Foundation.NSKeyValueObservingOptions

Added value:

None = 0,

Type Changed: Foundation.NSOperatingSystemVersion

Added constructors:

public NSOperatingSystemVersion (nint major);
public NSOperatingSystemVersion (nint major, nint minor);

Added interfaces:

System.IComparable
System.IEquatable<NSOperatingSystemVersion>

Added methods:

public int CompareTo (NSOperatingSystemVersion otherVersion);
public virtual int CompareTo (object obj);
public virtual bool Equals (NSOperatingSystemVersion other);
public override bool Equals (object obj);
public override int GetHashCode ();
public static bool op_Equality (NSOperatingSystemVersion os1, NSOperatingSystemVersion os2);
public static bool op_Inequality (NSOperatingSystemVersion os1, NSOperatingSystemVersion os2);

Type Changed: Foundation.NSRunLoop

Obsoleted properties:

 [Obsolete ("Use the 'NSRunLoopMode' enum instead.")]
 public static NSString NSDefaultRunLoopMode { get; }
 [Obsolete ("Use the 'NSRunLoopMode' enum instead.")]
 public static NSString NSRunLoopCommonModes { get; }
 [Obsolete ("Use the 'NSRunLoopMode' enum instead.")]
 public static NSString NSRunLoopConnectionReplyMode { get; }
 [Obsolete ("Use the 'NSRunLoopMode' enum instead.")]
 public static NSString NSRunLoopEventTracking { get; }
 [Obsolete ("Use the 'NSRunLoopMode' enum instead.")]
 public static NSString NSRunLoopModalPanelMode { get; }

Type Changed: Foundation.NSTask

Added properties:

public virtual NSUrl CurrentDirectoryUrl { get; set; }
public virtual NSUrl ExecutableUrl { get; set; }
public virtual NSQualityOfService QualityOfService { get; set; }
public virtual System.Action<NSTask> TerminationHandler { get; set; }

Added methods:

public virtual bool Launch (out NSError error);
public static NSTask LaunchFromUrl (NSUrl url, string[] arguments, out NSError error, System.Action<NSTask> terminationHandler);

Type Changed: Foundation.NSUrl

Added properties:

public static NSString FileIdentifierKey { get; }
public static NSString VolumeMountFromLocationKey { get; }
public static NSString VolumeSubtypeKey { get; }
public static NSString VolumeTypeNameKey { get; }

Type Changed: Foundation.NSUrlSessionHandler

Obsoleted properties:

 [Obsolete ("This property will be ignored in .NET 8.")]
 public bool BypassBackgroundSessionCheck { get; set; }

Type Changed: Foundation.NSValue

Added property:

public virtual CoreMedia.CMVideoDimensions CMVideoDimensionsValue { get; }

Added method:

public static NSValue FromCMVideoDimensions (CoreMedia.CMVideoDimensions value);

New Type: Foundation.NSDocumentViewMode

[Serializable]
public enum NSDocumentViewMode {
	Normal = 0,
	PageLayout = 1,
}

Namespace GameKit

Type Changed: GameKit.GKMatchmaker

Added methods:

public virtual void StartGroupActivity (System.Action<GKPlayer> handler);
public virtual void StopGroupActivity ();

Namespace HealthKit

Type Changed: HealthKit.HKClinicalTypeIdentifier

Added value:

ClinicalNoteRecord = 8,

Type Changed: HealthKit.HKContactsPrescription

Added interfaces:

Foundation.INSCoding
Foundation.INSCopying
Foundation.INSSecureCoding
ObjCRuntime.INativeObject
System.IDisposable

Added methods:

public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
public virtual void EncodeTo (Foundation.NSCoder encoder);

Type Changed: HealthKit.HKFhirResourceType

Added values:

DiagnosticReport = 10,
DocumentReference = 11,

Type Changed: HealthKit.HKGlassesPrescription

Added interfaces:

Foundation.INSCoding
Foundation.INSCopying
Foundation.INSSecureCoding
ObjCRuntime.INativeObject
System.IDisposable

Added methods:

public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
public virtual void EncodeTo (Foundation.NSCoder encoder);

Type Changed: HealthKit.HKMetadataKey

Added property:

public static Foundation.NSString HeadphoneGain { get; }

Type Changed: HealthKit.HKVisionPrescription

Added interfaces:

Foundation.INSCoding
Foundation.INSCopying
Foundation.INSSecureCoding
ObjCRuntime.INativeObject
System.IDisposable

Added methods:

public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
public virtual void EncodeTo (Foundation.NSCoder encoder);

Type Changed: HealthKit.HKWorkoutActivity

Added constructor:

public HKWorkoutActivity (Foundation.NSCoder coder);

Added interfaces:

Foundation.INSCoding
Foundation.INSCopying
Foundation.INSSecureCoding
ObjCRuntime.INativeObject
System.IDisposable

Added methods:

public virtual Foundation.NSObject Copy (Foundation.NSZone zone);
public virtual void EncodeTo (Foundation.NSCoder encoder);

Namespace ImageCaptureCore

Type Changed: ImageCaptureCore.ICCameraDevice

Added methods:

public void RequestDownloadFile (ICCameraFile file, Foundation.NSDictionary<Foundation.NSString,Foundation.NSObject> options, ICCameraDevice.DidDownloadDataDelegate callback);
public void RequestReadDataFromFile (ICCameraFile file, long offset, long length, ICCameraDevice.DidReadDataDelegate callback);
public void RequestSendPtpCommand (Foundation.NSData command, Foundation.NSData data, ICCameraDevice.DidSendPtpDelegate callback);

Type Changed: ImageCaptureCore.ICCameraDeviceDelegate

Added method:

public virtual void DidReceiveThumbnailForItem (ICCameraDevice camera, IntPtr thumbnail, ICCameraItem forItem, Foundation.NSError error);

Type Changed: ImageCaptureCore.ICCameraDeviceDelegate_Extensions

Added method:

public static void DidReceiveThumbnailForItem (this IICCameraDeviceDelegate This, ICCameraDevice camera, IntPtr thumbnail, ICCameraItem forItem, Foundation.NSError error);

Namespace ImageIO

Type Changed: ImageIO.CGImageProperties

Added property:

public static Foundation.NSString OpenExrCompression { get; }

Namespace ImageKit

Type Changed: ImageKit.IKImageEditPanel

Obsoleted properties:

 [Obsolete ("Use the 'FilterArray' property instead.")]
 public virtual Foundation.NSArray filterArray { get; }

Added property:

public virtual Foundation.NSArray FilterArray { get; }

Type Changed: ImageKit.IKSlideshow

Obsoleted properties:

 [Obsolete ("Use the 'AutoPlayDelay' property instead.")]
 public virtual double autoPlayDelay { get; set; }

Added property:

public virtual double AutoPlayDelay { get; set; }

Namespace Intents

Type Changed: Intents.INIntentIdentifier

Added values:

AnswerCall = 26,
HangUpCall = 27,

New Type: Intents.IINAnswerCallIntentHandling

public interface IINAnswerCallIntentHandling : ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual void HandleAnswerCall (INAnswerCallIntent intent, System.Action<INAnswerCallIntentResponse> completion);
}

New Type: Intents.IINHangUpCallIntentHandling

public interface IINHangUpCallIntentHandling : ObjCRuntime.INativeObject, System.IDisposable {
	// methods
	public virtual void HandleHangUpCall (INHangUpCallIntent intent, System.Action<INHangUpCallIntentResponse> completion);
}

New Type: Intents.INAnswerCallIntent

public class INAnswerCallIntent : Intents.INIntent {
	// constructors
	public INAnswerCallIntent ();
	public INAnswerCallIntent (Foundation.NSCoder coder);
	protected INAnswerCallIntent (Foundation.NSObjectFlag t);
	protected INAnswerCallIntent (IntPtr handle);
	public INAnswerCallIntent (INCallAudioRoute audioRoute, string callIdentifier);
	// properties
	public virtual INCallAudioRoute AudioRoute { get; }
	public virtual string CallIdentifier { get; }
	public override IntPtr ClassHandle { get; }
}

New Type: Intents.INAnswerCallIntentHandling_Extensions

public static class INAnswerCallIntentHandling_Extensions {
	// methods
	public static void ConfirmAnswerCall (this IINAnswerCallIntentHandling This, INAnswerCallIntent intent, System.Action<INAnswerCallIntentResponse> completion);
}

New Type: Intents.INAnswerCallIntentResponse

public class INAnswerCallIntentResponse : Intents.INIntentResponse {
	// constructors
	public INAnswerCallIntentResponse (Foundation.NSCoder coder);
	protected INAnswerCallIntentResponse (Foundation.NSObjectFlag t);
	protected INAnswerCallIntentResponse (IntPtr handle);
	public INAnswerCallIntentResponse (INAnswerCallIntentResponseCode code, Foundation.NSUserActivity userActivity);
	// properties
	public virtual INCallRecord[] CallRecords { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual INAnswerCallIntentResponseCode Code { get; }
}

New Type: Intents.INAnswerCallIntentResponseCode

[Serializable]
public enum INAnswerCallIntentResponseCode {
	ContinueInApp = 2,
	Failure = 5,
	FailureRequiringAppLaunch = 6,
	InProgress = 3,
	Ready = 1,
	Success = 4,
	Unspecified = 0,
}

New Type: Intents.INHangUpCallIntent

public class INHangUpCallIntent : Intents.INIntent {
	// constructors
	public INHangUpCallIntent ();
	public INHangUpCallIntent (Foundation.NSCoder coder);
	protected INHangUpCallIntent (Foundation.NSObjectFlag t);
	protected INHangUpCallIntent (IntPtr handle);
	public INHangUpCallIntent (string callIdentifier);
	// properties
	public virtual string CallIdentifier { get; }
	public override IntPtr ClassHandle { get; }
}

New Type: Intents.INHangUpCallIntentHandling_Extensions

public static class INHangUpCallIntentHandling_Extensions {
	// methods
	public static void ConfirmHangUpCall (this IINHangUpCallIntentHandling This, INHangUpCallIntent intent, System.Action<INHangUpCallIntentResponse> completion);
}

New Type: Intents.INHangUpCallIntentResponse

public class INHangUpCallIntentResponse : Intents.INIntentResponse {
	// constructors
	public INHangUpCallIntentResponse (Foundation.NSCoder coder);
	protected INHangUpCallIntentResponse (Foundation.NSObjectFlag t);
	protected INHangUpCallIntentResponse (IntPtr handle);
	public INHangUpCallIntentResponse (INHangUpCallIntentResponseCode code, Foundation.NSUserActivity userActivity);
	// properties
	public override IntPtr ClassHandle { get; }
	public virtual INHangUpCallIntentResponseCode Code { get; }
}

New Type: Intents.INHangUpCallIntentResponseCode

[Serializable]
public enum INHangUpCallIntentResponseCode {
	Failure = 4,
	FailureNoCallToHangUp = 6,
	FailureRequiringAppLaunch = 5,
	InProgress = 2,
	Ready = 1,
	Success = 3,
	Unspecified = 0,
}

Namespace JavaScriptCore

Type Changed: JavaScriptCore.JSContext

Added property:

public virtual bool Inspectable { get; set; }

Namespace MapKit

Type Changed: MapKit.MKOverlayRenderer

Added method:

public static nfloat MKRoadWidthAtZoomScale (nfloat zoomScale);

Type Changed: MapKit.MKOverlayView

Obsoleted methods:

 [Obsolete ("Use 'MKOverlayRenderer.MKRoadWidthAtZoomScale' instead.")]
 public static nfloat MKRoadWidthAtZoomScale (nfloat zoomScale);

Namespace MediaAccessibility

New Type: MediaAccessibility.MAVideoAccommodations

public static class MAVideoAccommodations {
	// properties
	public static Foundation.NSString DimFlashingLightsChangedNotification { get; }
	// methods
	public static bool IsDimFlashingLightsEnabled ();

	// inner types
	public static class Notifications {
		// methods
		public static Foundation.NSObject ObserveDimFlashingLightsChanged (System.EventHandler<Foundation.NSNotificationEventArgs> handler);
		public static Foundation.NSObject ObserveDimFlashingLightsChanged (Foundation.NSObject objectToObserve, System.EventHandler<Foundation.NSNotificationEventArgs> handler);
	}
}

Namespace Metal

Type Changed: Metal.IMTLRenderCommandEncoder_Extensions

Added methods:

public static void SetTileBuffers (this IMTLRenderCommandEncoder This, IMTLBuffer[] buffers, nuint[] offsets, Foundation.NSRange range);
public static void SetTileSamplerStates (this IMTLRenderCommandEncoder This, IMTLSamplerState[] samplers, float[] lodMinClamps, float[] lodMaxClamps, Foundation.NSRange range);

Namespace MetalKit

Type Changed: MetalKit.MTKTextureLoaderOptions

Modified properties:

-public bool? GenerateMipmaps { get; set; }
+public bool? GenerateMipmaps { get; }

Namespace Network

Type Changed: Network.NWDataTransferReport

Obsoleted methods:

 [Obsolete ("Use the 'GetPathRadioType' property instead.")]
 public NWInterfaceRadioType get_path_radio_type (uint pathIndex);

Added method:

public NWInterfaceRadioType GetPathRadioType (uint pathIndex);

Type Changed: Network.NWQuicStreamType

Added value:

Datagram = 3,

Namespace NetworkExtension

Type Changed: NetworkExtension.NEVpnProtocol

Added properties:

public virtual bool ExcludeApns { get; set; }
public virtual bool ExcludeCellularServices { get; set; }

Namespace ObjCRuntime

Type Changed: ObjCRuntime.BlockLiteral

Added interface:

System.IDisposable

Added property:

public object Context { get; }

Added method:

public virtual void Dispose ();

Type Changed: ObjCRuntime.Constants

Modified fields:

-public const string SdkVersion = "13.0";
+public const string SdkVersion = "13.3";
-public const string Version = "9.0.0";
+public const string Version = "9.4.0";

Added field:

public static const string ServiceManagementLibrary = "/System/Library/Frameworks/ServiceManagement.framework/ServiceManagement";

Namespace PassKit

Type Changed: PassKit.PKPaymentNetwork

Added property:

public static Foundation.NSString PKPaymentNetworkPostFinance { get; }

Type Changed: PassKit.PKPaymentRequest

Added property:

public virtual PKDeferredPaymentRequest DeferredPaymentRequest { get; set; }

Type Changed: PassKit.PKPaymentRequestUpdate

Added property:

public virtual PKDeferredPaymentRequest DeferredPaymentRequest { get; set; }

New Type: PassKit.PKDeferredPaymentRequest

public class PKDeferredPaymentRequest : Foundation.NSObject {
	// constructors
	protected PKDeferredPaymentRequest (Foundation.NSObjectFlag t);
	protected PKDeferredPaymentRequest (IntPtr handle);
	public PKDeferredPaymentRequest (string paymentDescription, PKDeferredPaymentSummaryItem deferredBilling, Foundation.NSUrl managementUrl);
	// properties
	public virtual string BillingAgreement { get; set; }
	public override IntPtr ClassHandle { get; }
	public virtual PKDeferredPaymentSummaryItem DeferredBilling { get; set; }
	public virtual Foundation.NSDate FreeCancellationDate { get; set; }
	public virtual Foundation.NSTimeZone FreeCancellationDateTimeZone { get; set; }
	public virtual Foundation.NSUrl ManagementUrl { get; set; }
	public virtual string PaymentDescription { get; set; }
	public virtual Foundation.NSUrl TokenNotificationUrl { get; set; }
}

Namespace PdfKit

Type Changed: PdfKit.PdfDocumentWriteOptions

Added properties:

public bool? BurnInAnnotations { get; set; }
public bool? OptimizeImagesForScreen { get; set; }
public bool? SaveImagesAsJpeg { get; set; }
public bool? SaveTextFromOcr { get; set; }

Namespace PencilKit

Type Changed: PencilKit.PKEraserTool

Added constructor:

public PKEraserTool (PKEraserType eraserType, nfloat width);

Added property:

public virtual nfloat Width { get; }

Added methods:

public static nfloat GetDefaultWidth (PKEraserType eraserType);
public static nfloat GetMaximumWidth (PKEraserType eraserType);
public static nfloat GetMinimumWidth (PKEraserType eraserType);

Type Changed: PencilKit.PKEraserType

Added value:

FixedWidthBitmap = 2,

Namespace Photos

Type Changed: Photos.PHFetchResult

Obsoleted properties:

 [Obsolete ("Use the 'FirstObject' property instead.")]
 public virtual Foundation.NSObject firstObject { get; }

Added property:

public virtual Foundation.NSObject FirstObject { get; }

Namespace QuickLookUI

Type Changed: QuickLookUI.QLPreviewPanelDelegate

Added method:

public virtual AppKit.INSPreviewRepresentableActivityItem[] GetPreviewRepresentableActivityItems (AppKit.NSWindow window);

Namespace SceneKit

Type Changed: SceneKit.SCNHitTest

Obsoleted properties:

 [Obsolete ("Use 'SearchModeKey' instead.")]
 public static Foundation.NSString OptionSearchModeKey { get; }

Namespace ScreenCaptureKit

Type Changed: ScreenCaptureKit.SCStreamFrameInfoKeys

Added property:

public static Foundation.NSString ScreenRect { get; }

Type Changed: ScreenCaptureKit.SCWindow

Added property:

public virtual bool Active { get; }

Namespace SharedWithYou

Type Changed: SharedWithYou.SWCollaborationView

Added property:

public virtual AppKit.NSMenuItem MenuFormRepresentation { get; }

Namespace StoreKit

Type Changed: StoreKit.StoreProductParameters

Modified properties:

-public string ProductIdentifier { get; set; }
+public string ProductIdentifier { get; }
-public string ProviderToken { get; set; }
+public string ProviderToken { get; }

Namespace ThreadNetwork

Type Changed: ThreadNetwork.THClient

Added methods:

public virtual void IsPreferredNetworkAvailable (System.Action<bool> completion);
public virtual System.Threading.Tasks.Task<bool> IsPreferredNetworkAvailableAsync ();
public virtual void RetrieveAllActiveCredentials (System.Action<Foundation.NSSet<THCredentials>> completion);
public virtual System.Threading.Tasks.Task<Foundation.NSSet<THCredentials>> RetrieveAllActiveCredentialsAsync ();

Namespace VideoSubscriberAccount

Type Changed: VideoSubscriberAccount.VSUserAccount

Added property:

public virtual bool SignedOut { get; set; }

Namespace WebKit

Type Changed: WebKit.DomDocument

Obsoleted properties:

 [Obsolete ("Use the 'Anchors' property instead.")]
 public virtual DomHtmlCollection anchors { get; }
 [Obsolete ("Use the 'Applets' property instead.")]
 public virtual DomHtmlCollection applets { get; }
 [Obsolete ("Use the 'Body' property instead.")]
 public virtual DomHtmlElement body { get; set; }
 [Obsolete ("Use the 'Forms' property instead.")]
 public virtual DomHtmlCollection forms { get; }
 [Obsolete ("Use the 'Images' property instead.")]
 public virtual DomHtmlCollection images { get; }
 [Obsolete ("Use the 'Links' property instead.")]
 public virtual DomHtmlCollection links { get; }

Added properties:

public virtual DomHtmlCollection Anchors { get; }
public virtual DomHtmlCollection Applets { get; }
public virtual DomHtmlElement Body { get; set; }
public virtual DomHtmlCollection Forms { get; }
public virtual DomHtmlCollection Images { get; }
public virtual DomHtmlCollection Links { get; }

Type Changed: WebKit.DomHtmlInputElement

Obsoleted properties:

 [Obsolete ("Use the 'DefaultChecked' property instead.")]
 public virtual bool defaultChecked { get; set; }

Added property:

public virtual bool DefaultChecked { get; set; }

Type Changed: WebKit.WKPreferences

Added property:

public virtual bool ShouldPrintBackgrounds { get; set; }

Type Changed: WebKit.WKWebView

Added property:

public virtual bool Inspectable { get; set; }

New Namespace ServiceManagement

New Type: ServiceManagement.SMAppService

public class SMAppService : Foundation.NSObject {
	// constructors
	protected SMAppService (Foundation.NSObjectFlag t);
	protected SMAppService (IntPtr handle);
	// properties
	public override IntPtr ClassHandle { get; }
	public static SMAppService MainApp { get; }
	public virtual SMAppServiceStatus Status { get; }
	// methods
	public static SMAppService CreateAgentService (string plistName);
	public static SMAppService CreateDaemonService (string plistName);
	public static SMAppService CreateLoginItemService (string identifier);
	public static SMAppServiceStatus GetStatus (Foundation.NSUrl legacyUrl);
	public static void OpenSystemSettingsLoginItems ();
	public bool Register ();
	public virtual bool Register (out Foundation.NSError error);
	public bool Unregister ();
	public virtual void Unregister (System.Action<Foundation.NSError> handler);
	public virtual bool Unregister (out Foundation.NSError error);
	public virtual System.Threading.Tasks.Task UnregisterAsync ();
}

New Type: ServiceManagement.SMAppServiceStatus

[Serializable]
public enum SMAppServiceStatus {
	Enabled = 1,
	NotFound = 3,
	NotRegistered = 0,
	RequiresApproval = 2,
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment