Also enable the PHLivePhotoEditingOption strong dictionary overload now that b3 provides the required key
This commit is contained in:
Sebastien Pouliot 2017-07-13 14:06:57 -04:00 коммит произвёл GitHub
Родитель 44d03dae46
Коммит cedb13a1ef
2 изменённых файлов: 427 добавлений и 38 удалений

Просмотреть файл

@ -18,7 +18,7 @@ namespace XamCore.Photos
// NSInteger -> PHImageManager.h
[iOS (8,0)]
[TV (10,0)]
[NoMac]
[Mac (10,13, onlyOn64 : true)]
[Native]
public enum PHImageRequestOptionsVersion : nint {
Current = 0,
@ -29,7 +29,7 @@ namespace XamCore.Photos
// NSInteger -> PHImageManager.h
[iOS (8,0)]
[TV (10,0)]
[NoMac]
[Mac (10,13, onlyOn64 : true)]
[Native]
public enum PHImageRequestOptionsDeliveryMode : nint {
Opportunistic = 0,
@ -40,7 +40,7 @@ namespace XamCore.Photos
// NSInteger -> PHImageManager.h
[iOS (8,0)]
[TV (10,0)]
[NoMac]
[Mac (10,13, onlyOn64 : true)]
[Native]
public enum PHImageRequestOptionsResizeMode : nint {
None = 0,
@ -146,6 +146,7 @@ namespace XamCore.Photos
AlbumSyncedFaces = 4,
AlbumSyncedAlbum = 5,
AlbumImported = 6,
AlbumImportHistory = AlbumImported, // renamed only on macOS
AlbumMyPhotoStream = 100,
AlbumCloudShared = 101,
SmartAlbumGeneric = 200,
@ -231,7 +232,7 @@ namespace XamCore.Photos
[iOS (8,0)]
[TV (10,0)]
[NoMac]
[Mac (10,13, onlyOn64 : true)]
[Native]
public enum PHAuthorizationStatus : nint {
NotDetermined, Restricted, Denied, Authorized
@ -274,4 +275,53 @@ namespace XamCore.Photos
Photo,
Video
}
[TV (11,0), iOS (11,0)]
[Mac (10,13, onlyOn64 : true)]
[Native]
public enum PHAssetPlaybackStyle : nint {
Unsupported = 0,
Image = 1,
ImageAnimated = 2,
LivePhoto = 3,
Video = 4,
VideoLooping = 5,
}
[Mac (10,13, onlyOn64 : true)]
[NoiOS][NoTV]
[Native]
public enum PHProjectTextElementType : nint {
Body = 0,
Title,
Subtitle,
}
[Mac (10,13, onlyOn64 : true)]
[NoiOS][NoTV]
[Native]
public enum PHProjectCreationSource : nint {
Undefined = 0,
UserSelection = 1,
Album = 2,
Memory = 3,
Moment = 4,
Project = 20,
ProjectBook = 21,
ProjectCalendar = 22,
ProjectCard = 23,
ProjectPrintOrder = 24,
ProjectSlideshow = 25,
ProjectExtension = 26,
}
[Mac (10,13, onlyOn64 : true)]
[NoiOS][NoTV]
[Native]
public enum PHProjectSectionType : nint {
Undefined = 0,
Cover = 1,
Content = 2,
Auxiliary = 3,
}
}

Просмотреть файл

@ -10,6 +10,9 @@ using XamCore.ImageIO;
using System;
#if !MONOMAC
using XamCore.UIKit;
using NSImage = XamCore.Foundation.NSObject; // help [NoiOS] and [NoTV]
#else
using XamCore.AppKit;
#endif
namespace XamCore.Photos
@ -35,7 +38,7 @@ namespace XamCore.Photos
[iOS (8,0)]
[TV (10,0)]
[NoMac]
[Mac (10,13, onlyOn64 : true)]
[BaseType (typeof (PHObject))]
interface PHAsset {
@ -66,6 +69,10 @@ namespace XamCore.Photos
[Export ("hidden")]
bool Hidden { [Bind ("isHidden")] get; }
[NoTV][NoiOS]
[Export ("syncFailureHidden")]
bool SyncFailureHidden { [Bind ("isSyncFailureHidden")] get; }
[Export ("favorite")]
bool Favorite { [Bind ("isFavorite")] get; }
@ -105,6 +112,9 @@ namespace XamCore.Photos
[Export ("fetchAssetsWithOptions:")]
PHFetchResult FetchAssets ([NullAllowed] PHFetchOptions options);
[Deprecated (PlatformName.TvOS, 11,0)]
[Deprecated (PlatformName.iOS, 11,0)]
[NoMac]
[Static]
[Export ("fetchAssetsWithALAssetURLs:options:")]
PHFetchResult FetchAssets (NSUrl[] assetUrls, [NullAllowed] PHFetchOptions options);
@ -112,6 +122,14 @@ namespace XamCore.Photos
[iOS (9,0)]
[Export ("sourceType", ArgumentSemantic.Assign)]
PHAssetSourceType SourceType { get; }
[TV (11,0), iOS (11,0)]
[Export ("playbackStyle", ArgumentSemantic.Assign)]
PHAssetPlaybackStyle PlaybackStyle { get; }
[NoTV][NoiOS]
[Field ("PHLocalIdentifierNotFound")]
NSString LocalIdentifierNotFound { get; }
}
[iOS (8,0)]
@ -365,7 +383,7 @@ namespace XamCore.Photos
[iOS (8,0)]
[TV (10,0)]
[NoMac]
[Mac (10,13, onlyOn64 : true)]
[BaseType (typeof (NSObject))]
interface PHChange {
@ -378,7 +396,7 @@ namespace XamCore.Photos
[iOS (8,0)]
[TV (10,0)]
[NoMac]
[Mac (10,13, onlyOn64 : true)]
[BaseType (typeof (NSObject))]
interface PHObjectChangeDetails {
@ -395,12 +413,12 @@ namespace XamCore.Photos
bool ObjectWasDeleted { get; }
}
[NoMac]
[Mac (10,13, onlyOn64 : true)]
delegate void PHChangeDetailEnumerator (nuint fromIndex, nuint toIndex);
[iOS (8,0)]
[TV (10,0)]
[NoMac]
[Mac (10,13, onlyOn64 : true)]
[BaseType (typeof (NSObject))]
interface PHFetchResultChangeDetails {
@ -444,7 +462,7 @@ namespace XamCore.Photos
[iOS (8,0)]
[TV (10,0)]
[NoMac]
[Mac (10,13, onlyOn64 : true)]
[BaseType (typeof (PHObject))]
[DisableDefaultCtor] // not user createable (calling description fails, see below) must be fetched by API
// NSInternalInconsistencyException Reason: PHCollection has no identifier
@ -476,7 +494,7 @@ namespace XamCore.Photos
[iOS (8,0)]
[TV (10,0)]
[NoMac]
[Mac (10,13, onlyOn64 : true)]
[BaseType (typeof (PHCollection))]
interface PHAssetCollection {
@ -536,7 +554,7 @@ namespace XamCore.Photos
[iOS (8,0)]
[TV (10,0)]
[NoMac]
[Mac (10,13, onlyOn64 : true)]
[BaseType (typeof (PHCollection))]
interface PHCollectionList {
@ -659,8 +677,10 @@ namespace XamCore.Photos
[Export ("adjustmentData", ArgumentSemantic.Strong)]
PHAdjustmentData AdjustmentData { get; }
#if !MONOMAC
[Export ("displaySizeImage", ArgumentSemantic.Strong)]
#if MONOMAC
NSImage DisplaySizeImage { get; }
#else
UIImage DisplaySizeImage { get; }
#endif
@ -681,6 +701,11 @@ namespace XamCore.Photos
[iOS (10,0)]
[NullAllowed, Export ("livePhoto", ArgumentSemantic.Strong)]
PHLivePhoto LivePhoto { get; }
[TV (11,0), iOS (11,0)]
[Mac (10,13, onlyOn64 : true)]
[Export ("playbackStyle", ArgumentSemantic.Assign)]
PHAssetPlaybackStyle PlaybackStyle { get; }
}
[iOS (8,0)]
@ -706,7 +731,7 @@ namespace XamCore.Photos
[iOS (8,0)]
[TV (10,0)]
[NoMac]
[Mac (10,13, onlyOn64 : true)]
[BaseType (typeof (NSObject))]
interface PHFetchOptions : NSCopying {
@ -736,12 +761,12 @@ namespace XamCore.Photos
nuint FetchLimit { get; set; }
}
[NoMac]
[Mac (10,13, onlyOn64 : true)]
delegate void PHFetchResultEnumerator (NSObject element, nuint elementIndex, out bool stop);
[iOS (8,0)]
[TV (10,0)]
[NoMac]
[Mac (10,13, onlyOn64 : true)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor] // crash when calling 'description' and seems to be only returned from iOS (not user created)
interface PHFetchResult : NSCopying {
@ -791,7 +816,7 @@ namespace XamCore.Photos
[iOS (8,0)]
[TV (10,0)]
[NoMac]
[Mac (10,13, onlyOn64 : true)]
[BaseType (typeof (NSObject))]
interface PHImageRequestOptions : NSCopying {
@ -842,7 +867,7 @@ namespace XamCore.Photos
[iOS (8,0)]
[TV (10,0)]
[NoMac]
[Mac (10,13, onlyOn64 : true)]
[Static]
interface PHImageKeys {
@ -862,7 +887,9 @@ namespace XamCore.Photos
NSString ResultRequestID { get; }
}
#if !MONOMAC
#if MONOMAC
delegate void PHImageResultHandler (NSImage result, NSDictionary info);
#else
delegate void PHImageResultHandler (UIImage result, NSDictionary info);
#endif
@ -877,7 +904,7 @@ namespace XamCore.Photos
[iOS (8,0)]
[TV (10,0)]
[NoMac]
[Mac (10,13, onlyOn64 : true)]
[BaseType (typeof (NSObject))]
interface PHImageManager {
@ -885,25 +912,24 @@ namespace XamCore.Photos
[Export ("defaultManager")]
PHImageManager DefaultManager { get; }
#if !MONOMAC
[Export ("requestImageForAsset:targetSize:contentMode:options:resultHandler:")]
int /* PHImageRequestID = int32_t */ RequestImageForAsset (PHAsset asset, CGSize targetSize, PHImageContentMode contentMode, [NullAllowed] PHImageRequestOptions options, PHImageResultHandler resultHandler);
#endif
[Export ("cancelImageRequest:")]
void CancelImageRequest (int /* PHImageRequestID = int32_t */ requestID);
#if !MONOMAC
[Export ("requestImageDataForAsset:options:resultHandler:")]
int /* PHImageRequestID = int32_t */ RequestImageData (PHAsset asset, [NullAllowed] PHImageRequestOptions options, PHImageDataHandler handler);
#endif
[NoMac]
[Export ("requestPlayerItemForVideo:options:resultHandler:")]
int /* PHImageRequestID = int32_t */ RequestPlayerItem (PHAsset asset, [NullAllowed] PHVideoRequestOptions options, PHImageManagerRequestPlayerHandler resultHandler);
[NoMac]
[Export ("requestExportSessionForVideo:options:exportPreset:resultHandler:")]
int /* PHImageRequestID = int32_t */ RequestExportSession (PHAsset asset, [NullAllowed] PHVideoRequestOptions options, string exportPreset, PHImageManagerRequestExportHandler resultHandler);
[NoMac]
[Export ("requestAVAssetForVideo:options:resultHandler:")]
#if XAMCORE_4_0
int /* PHImageRequestID = int32_t */ RequestAVAsset (PHAsset asset, [NullAllowed] PHVideoRequestOptions options, PHImageManagerRequestAVAssetHandler resultHandler);
@ -915,11 +941,14 @@ namespace XamCore.Photos
CGSize MaximumSize { get; }
[iOS (9,1)]
[NoMac]
[Export ("requestLivePhotoForAsset:targetSize:contentMode:options:resultHandler:")]
int /* PHImageRequestID = int32_t */ RequestLivePhoto (PHAsset asset, CGSize targetSize, PHImageContentMode contentMode, [NullAllowed] PHLivePhotoRequestOptions options, PHImageManagerRequestLivePhoto resultHandler);
}
#if !MONOMAC
#if MONOMAC
delegate void PHImageDataHandler (NSData data, NSString dataUti, CGImagePropertyOrientation orientation, NSDictionary info);
#else
delegate void PHImageDataHandler (NSData data, NSString dataUti, UIImageOrientation orientation, NSDictionary info);
#endif
@ -944,7 +973,7 @@ namespace XamCore.Photos
[iOS (8,0)]
[TV (10,0)]
[NoMac]
[Mac (10,13, onlyOn64 : true)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor] // doc -> "abstract base class"
// throws "NSInternalInconsistencyException Reason: PHObject has no identifier"
@ -967,7 +996,7 @@ namespace XamCore.Photos
[iOS (8,0)]
[TV (10,0)]
[NoMac]
[Mac (10,13, onlyOn64 : true)]
[Protocol]
[Model]
[BaseType (typeof (NSObject))]
@ -984,7 +1013,7 @@ namespace XamCore.Photos
[iOS (8,0)]
[TV (10,0)]
[NoMac]
[Mac (10,13, onlyOn64 : true)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor] // NSInternalInconsistencyException Reason: -[PHPhotoLibrary init] unsupported
interface PHPhotoLibrary {
@ -1014,6 +1043,19 @@ namespace XamCore.Photos
void UnregisterChangeObserver ([Protocolize] PHPhotoLibraryChangeObserver observer);
}
[Mac (10,13, onlyOn64 : true)]
[NoTV][NoiOS]
[Category]
[BaseType (typeof (PHPhotoLibrary))]
interface PHPhotoLibrary_CloudIdentifiers {
[Export ("localIdentifiersForCloudIdentifiers:")]
string[] GetLocalIdentifiers (PHCloudIdentifier[] cloudIdentifiers);
[Export ("cloudIdentifiersForLocalIdentifiers:")]
PHCloudIdentifier[] GetCloudIdentifiers (string[] localIdentifiers);
}
[iOS (9,1)]
[TV (10,0)]
#if MONOMAC
@ -1104,14 +1146,38 @@ namespace XamCore.Photos
[Export ("orientation")]
CGImagePropertyOrientation Orientation { get; }
[Async]
[Internal]
[Export ("prepareLivePhotoForPlaybackWithTargetSize:options:completionHandler:")]
void PrepareLivePhotoForPlayback (CGSize targetSize, [NullAllowed] NSDictionary<NSString, NSObject> options, Action<PHLivePhoto, NSError> handler);
void _PrepareLivePhotoForPlayback (CGSize targetSize, [NullAllowed] NSDictionary options, Action<PHLivePhoto, NSError> handler);
[Async]
[Wrap ("_PrepareLivePhotoForPlayback (targetSize, (NSDictionary)options, handler)", IsVirtual = true)]
void PrepareLivePhotoForPlayback (CGSize targetSize, [NullAllowed] NSDictionary<NSString, NSObject> options, Action<PHLivePhoto, NSError> handler);
#if XAMCORE_2_0
// the API existed earlier but the key needed to create the strong dictionary did not work
[iOS (11,0)][TV (11,0)][Mac (10,12, onlyOn64 : true)]
[Async]
[Wrap ("_PrepareLivePhotoForPlayback (targetSize, options?.Dictionary, handler)")]
void PrepareLivePhotoForPlayback (CGSize targetSize, [NullAllowed] PHLivePhotoEditingOption options, Action<PHLivePhoto, NSError> handler);
#endif
[Internal]
[Export ("saveLivePhotoToOutput:options:completionHandler:")]
void _SaveLivePhoto (PHContentEditingOutput output, [NullAllowed] NSDictionary options, Action<bool, NSError> handler);
[Async]
[Wrap ("_SaveLivePhoto (output, options, handler)", IsVirtual = true)]
void SaveLivePhoto (PHContentEditingOutput output, [NullAllowed] NSDictionary<NSString, NSObject> options, Action<bool, NSError> handler);
#if XAMCORE_2_0
// the API existed earlier but the key needed to create the strong dictionary did not work
[iOS (11,0)][TV (11,0)][Mac (10,12, onlyOn64 : true)]
[Async]
[Wrap ("_SaveLivePhoto (output, options?.Dictionary, handler)")]
void SaveLivePhoto (PHContentEditingOutput output, [NullAllowed] PHLivePhotoEditingOption options, Action<bool, NSError> handler);
#endif
[Export ("cancel")]
void Cancel ();
}
@ -1140,16 +1206,289 @@ namespace XamCore.Photos
nfloat RenderScale { get; }
}
// TODO returns null on Xcode 8 beta 1-6, rdar #28169810 https://trello.com/c/RwXK6YRX
// PHLivePhotoEditingContext.PrepareLivePhotoForPlayback and SaveLivePhoto could use a strong dictionary once it's available
#if false
[iOS (10,0)]
[TV (10,0)]
#if XAMCORE_2_0 // fails to build with mac/classic
[iOS (11,0)]
[TV (11,0)]
[Mac (10,12, onlyOn64 : true)]
[Static]
interface PHLivePhotoEditingOption {
[Static][Internal]
interface PHLivePhotoEditingOptionKeys {
[Field ("PHLivePhotoShouldRenderAtPlaybackTime")]
NSString ShouldRenderAtPlaybackTime { get; }
NSString ShouldRenderAtPlaybackTimeKey { get; }
}
[iOS (11,0)]
[TV (11,0)]
[Mac (10,12, onlyOn64 : true)]
[StrongDictionary ("PHLivePhotoEditingOptionKeys")]
interface PHLivePhotoEditingOption {
bool ShouldRenderAtPlaybackTime { get; }
}
#endif
[Mac (10,13, onlyOn64 : true)]
[NoiOS][NoTV]
[BaseType (typeof (PHAssetCollection))]
interface PHProject {
[Export ("projectExtensionData")]
NSData ProjectExtensionData { get; }
}
[Mac (10,13, onlyOn64 : true)]
[NoiOS][NoTV]
[Static]
interface PHProjectType {
[Field ("PHProjectTypeUndefined")]
NSString Undefined { get; }
}
[Mac (10,13, onlyOn64 : true)]
[NoiOS][NoTV]
[BaseType (typeof (NSObject))]
interface PHProjectChangeRequest {
[Export ("initWithProject:")]
IntPtr Constructor (PHProject project);
[Export ("title")]
string Title { get; set; }
[Export ("projectExtensionData", ArgumentSemantic.Copy)]
NSData ProjectExtensionData { get; set; }
[Export ("setKeyAsset:")]
void SetKeyAsset ([NullAllowed] PHAsset keyAsset);
}
[Mac (10,13, onlyOn64 : true)]
[NoiOS][NoTV]
[BaseType (typeof (PHProjectElement))]
interface PHProjectTextElement : NSSecureCoding {
[Export ("text")]
string Text { get; }
[NullAllowed, Export ("attributedText")]
NSAttributedString AttributedText { get; }
[Export ("textElementType")]
PHProjectTextElementType TextElementType { get; }
}
[Mac (10,13, onlyOn64 : true)]
[NoiOS][NoTV]
[BaseType (typeof (PHProjectElement))]
interface PHProjectJournalEntryElement : NSSecureCoding {
[Export ("date")]
NSDate Date { get; }
[NullAllowed, Export ("assetElement")]
PHProjectAssetElement AssetElement { get; }
[NullAllowed, Export ("textElement")]
PHProjectTextElement TextElement { get; }
}
[Mac (10,13, onlyOn64 : true)]
[NoiOS][NoTV]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface PHProjectTypeDescription : NSSecureCoding {
[Export ("projectType")]
NSString ProjectType { get; }
[Export ("localizedTitle")]
string LocalizedTitle { get; }
[NullAllowed, Export ("localizedDescription")]
string LocalizedDescription { get; }
[NullAllowed, Export ("image", ArgumentSemantic.Copy)]
NSImage Image { get; }
[Export ("subtypeDescriptions", ArgumentSemantic.Copy)]
PHProjectTypeDescription[] SubtypeDescriptions { get; }
[Export ("initWithProjectType:title:description:image:subtypeDescriptions:")]
[DesignatedInitializer]
IntPtr Constructor (NSString projectType, string localizedTitle, [NullAllowed] string localizedDescription, [NullAllowed] NSImage image, PHProjectTypeDescription[] subtypeDescriptions);
[Export ("initWithProjectType:title:description:image:")]
IntPtr Constructor (NSString projectType, string localizedTitle, [NullAllowed] string localizedDescription, [NullAllowed] NSImage image);
}
[Mac (10,13, onlyOn64 : true)]
[NoiOS][NoTV]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface PHProjectRegionOfInterest : NSSecureCoding {
[Export ("rect")]
CGRect Rect { get; }
[Export ("weight")]
double Weight { get; }
[Export ("identifier")]
string Identifier { get; }
}
[Mac (10,13, onlyOn64 : true)]
[NoiOS][NoTV]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface PHProjectElement : NSSecureCoding {
[Export ("weight")]
double Weight { get; }
[Export ("placement")]
CGRect Placement { get; }
}
[Mac (10,13, onlyOn64 : true)]
[NoiOS][NoTV]
[BaseType (typeof (PHProjectElement))]
interface PHProjectAssetElement : NSSecureCoding {
[Export ("cloudAssetIdentifier")]
PHCloudIdentifier CloudAssetIdentifier { get; }
[Export ("annotation")]
string Annotation { get; }
[Export ("cropRect")]
CGRect CropRect { get; }
[Export ("regionsOfInterest")]
PHProjectRegionOfInterest[] RegionsOfInterest { get; }
}
[Mac (10,13, onlyOn64 : true)]
[NoiOS][NoTV]
[BaseType (typeof (NSExtensionContext))]
interface PHProjectExtensionContext {
[Export ("photoLibrary")]
PHPhotoLibrary PhotoLibrary { get; }
[Export ("project")]
PHProject Project { get; }
}
[Mac (10,13, onlyOn64 : true)]
[NoiOS][NoTV]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface PHProjectInfo : NSSecureCoding {
[Export ("creationSource")]
PHProjectCreationSource CreationSource { get; }
[Export ("projectType")]
NSString ProjectType { get; }
[Export ("sections")]
PHProjectSection[] Sections { get; }
}
[Mac (10,13, onlyOn64 : true)]
[NoiOS][NoTV]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface PHProjectSection : NSSecureCoding {
[Export ("sectionContents")]
PHProjectSectionContent[] SectionContents { get; }
[Export ("sectionType")]
PHProjectSectionType SectionType { get; }
[Export ("title")]
string Title { get; }
}
[Mac (10,13, onlyOn64 : true)]
[NoiOS][NoTV]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface PHProjectSectionContent : NSSecureCoding {
[Export ("elements")]
PHProjectElement[] Elements { get; }
[Export ("numberOfColumns")]
nint NumberOfColumns { get; }
[Export ("aspectRatio")]
double AspectRatio { get; }
[Export ("cloudAssetIdentifiers")]
PHCloudIdentifier[] CloudAssetIdentifiers { get; }
}
[Mac (10,13, onlyOn64 : true)]
[NoiOS][NoTV]
[Protocol]
interface PHProjectExtensionController {
[Export ("supportedProjectTypes", ArgumentSemantic.Copy)]
PHProjectTypeDescription[] SupportedProjectTypes { get; }
[Abstract]
[Export ("beginProjectWithExtensionContext:projectInfo:completion:")]
void BeginProject (PHProjectExtensionContext extensionContext, PHProjectInfo projectInfo, Action<NSError> completion);
[Abstract]
[Export ("resumeProjectWithExtensionContext:completion:")]
void ResumeProject (PHProjectExtensionContext extensionContext, Action<NSError> completion);
[Abstract]
[Export ("finishProjectWithCompletionHandler:")]
void FinishProject (Action completion);
}
[Mac (10,13, onlyOn64 : true)]
[NoiOS][NoTV]
[Protocol]
interface PHContentEditingController {
[Abstract]
[Export ("canHandleAdjustmentData:")]
bool CanHandleAdjustmentData (PHAdjustmentData adjustmentData);
[Abstract]
[Export ("startContentEditingWithInput:placeholderImage:")]
void StartContentEditing (PHContentEditingInput contentEditingInput, NSImage placeholderImage);
[Abstract]
[Export ("finishContentEditingWithCompletionHandler:")]
void FinishContentEditing (Action<PHContentEditingOutput> completionHandler);
[Abstract]
[Export ("cancelContentEditing")]
void CancelContentEditing ();
[Abstract]
[Export ("shouldShowCancelConfirmation")]
bool ShouldShowCancelConfirmation { get; }
}
[Mac (10,13, onlyOn64 : true)]
[NoiOS][NoTV]
[BaseType (typeof (NSObject))]
interface PHCloudIdentifier : NSSecureCoding {
[Static]
[Export ("notFoundIdentifier")]
PHCloudIdentifier NotFoundIdentifier { get; }
[Export ("stringValue")]
string StringValue { get; }
[Export ("initWithStringValue:")]
IntPtr Constructor (string stringValue);
}
}