diff --git a/src/MapKit/MKAddressFilter.cs b/src/MapKit/MKAddressFilter.cs
new file mode 100644
index 000000000000..daacf9fd6568
--- /dev/null
+++ b/src/MapKit/MKAddressFilter.cs
@@ -0,0 +1,42 @@
+#if !WATCH
+
+using System;
+using System.Runtime.InteropServices;
+using Foundation;
+using ObjCRuntime;
+using MapKit;
+
+#nullable enable
+
+namespace MapKit {
+ /// This enum is used to select how to initialize a new instance of a .
+ public enum MKAddressFilterConstructorOption {
+ /// The options parameter passed to the constructor are inclusive.
+ Include,
+ /// The options parameter passed to the constructor are exclusive.
+ Exclude,
+ }
+
+ public partial class MKAddressFilter {
+ /// Create a new with the specified address filter options.
+ /// The address filter options to use.
+ /// Specify whether the argument is including or excluding the given options.
+ /// A new instance with the specified address filter options.
+ public MKAddressFilter (MKAddressFilterOption options, MKAddressFilterConstructorOption constructorOption)
+ : base (NSObjectFlag.Empty)
+ {
+ switch (constructorOption) {
+ case MKAddressFilterConstructorOption.Include:
+ InitializeHandle (_InitIncludingOptions (options));
+ break;
+ case MKAddressFilterConstructorOption.Exclude:
+ InitializeHandle (_InitExcludingOptions (options));
+ break;
+ default:
+ throw new ArgumentOutOfRangeException (nameof (constructorOption), constructorOption, "Invalid enum value.");
+ }
+ }
+ }
+}
+
+#endif
diff --git a/src/MapKit/MKEnums.cs b/src/MapKit/MKEnums.cs
index e1e959e29964..ac278e1a0b70 100644
--- a/src/MapKit/MKEnums.cs
+++ b/src/MapKit/MKEnums.cs
@@ -175,6 +175,8 @@ public enum MKLocalSearchCompleterResultType : ulong {
Address = 1 << 0,
PointOfInterest = 1 << 1,
Query = 1 << 2,
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ PhysicalFeature = 1 << 3,
}
[Flags]
@@ -184,6 +186,8 @@ public enum MKLocalSearchCompleterResultType : ulong {
public enum MKLocalSearchResultType : ulong {
Address = 1 << 0,
PointOfInterest = 1 << 1,
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ PhysicalFeature = 1 << 2,
}
[Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), NoWatch, TV (16, 0)]
@@ -356,6 +360,138 @@ public enum MKPointOfInterestCategory {
[Field ("MKPointOfInterestCategoryZoo")]
Zoo,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryAnimalService")]
+ AnimalService,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryAutomotiveRepair")]
+ AutomotiveRepair,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryBaseball")]
+ Baseball,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryBasketball")]
+ Basketball,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryBeauty")]
+ Beauty,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryBowling")]
+ Bowling,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryCastle")]
+ Castle,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryConventionCenter")]
+ ConventionCenter,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryDistillery")]
+ Distillery,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryFairground")]
+ Fairground,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryFishing")]
+ Fishing,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryFortress")]
+ Fortress,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryGolf")]
+ Golf,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryGoKart")]
+ GoKart,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryHiking")]
+ Hiking,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryKayaking")]
+ Kayaking,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryLandmark")]
+ Landmark,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryMailbox")]
+ Mailbox,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryMiniGolf")]
+ MiniGolf,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryMusicVenue")]
+ MusicVenue,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryNationalMonument")]
+ NationalMonument,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryPlanetarium")]
+ Planetarium,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryRockClimbing")]
+ RockClimbing,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryRVPark")]
+ RVPark,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategorySkatePark")]
+ SkatePark,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategorySkating")]
+ Skating,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategorySkiing")]
+ Skiing,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategorySoccer")]
+ Soccer,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategorySpa")]
+ Spa,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategorySurfing")]
+ Surfing,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategorySwimming")]
+ Swimming,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryTennis")]
+ Tennis,
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Field ("MKPointOfInterestCategoryVolleyball")]
+ Volleyball,
}
#endif
diff --git a/src/frameworks.sources b/src/frameworks.sources
index 0183ff55da04..14dcc6ef5055 100644
--- a/src/frameworks.sources
+++ b/src/frameworks.sources
@@ -1147,6 +1147,7 @@ MAPKIT_CORE_SOURCES = \
MapKit/MapKit.cs \
MAPKIT_SOURCES = \
+ MapKit/MKAddressFilter.cs \
MapKit/MKCompat.cs \
MapKit/MKDirections.cs \
MapKit/MKFeatureDisplayPriority.cs \
diff --git a/src/mapkit.cs b/src/mapkit.cs
index a5885604075f..5b3fe5bba031 100644
--- a/src/mapkit.cs
+++ b/src/mapkit.cs
@@ -87,6 +87,9 @@ interface MKAnnotation {
[Export ("setCoordinate:")]
[MacCatalyst (13, 1)]
void SetCoordinate (CLLocationCoordinate2D value);
+
+ [Notification, Field ("MKAnnotationCalloutInfoDidChangeNotification")]
+ NSString CalloutInfoDidChangeNotification { get; }
}
interface IMKAnnotation { }
@@ -97,6 +100,11 @@ interface IMKAnnotation { }
[Protocol]
[MacCatalyst (13, 1)]
interface MKOverlay {
+ // There's a 'coordinate' readonly property defined in the header for MKOverlay,
+ // but the MKAnnotation protocol (which this protocol subclasses), also defines
+ // a readonly 'coordinate' property, so there's no need to re-declare it here
+ // (in fact it causes numerous build problems).
+
[Abstract]
[Export ("boundingMapRect")]
MKMapRect BoundingMapRect { get; }
@@ -235,6 +243,10 @@ interface MKAnnotationView {
[MacCatalyst (14, 0)]
[Export ("selectedZPriority")]
float SelectedZPriority { get; set; }
+
+ [iOS (18, 0), Mac (15, 0), MacCatalyst (18, 0), NoTV, NoWatch]
+ [Export ("accessoryOffset", ArgumentSemantic.Assign)]
+ CGPoint AccessoryOffset { get; set; }
}
[ThreadSafe]
@@ -454,6 +466,14 @@ interface MKMapItem : NSSecureCoding
[MacCatalyst (13, 1)]
[NullAllowed, Export ("pointOfInterestCategory")]
string PointOfInterestCategory { get; set; }
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Export ("identifier"), NullAllowed]
+ MKMapItemIdentifier Identifier { get; }
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Export ("alternateIdentifiers")]
+ NSSet AlternateIdentifiers { get; }
}
[NoWatch]
@@ -883,6 +903,11 @@ interface MKMapViewDelegate {
[MacCatalyst (13, 1)]
[Export ("mapViewDidChangeVisibleRegion:")]
void DidChangeVisibleRegion (MKMapView mapView);
+
+ [return: NullAllowed]
+ [Export ("mapView:selectionAccessoryForAnnotation:"), DelegateName ("MKMapViewDelegateGetSelectionAccessory"), DefaultValue (null)]
+ [NoWatch, NoTV, Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ MKSelectionAccessory GetSelectionAccessory (MKMapView mapView, IMKAnnotation annotation);
}
[BaseType (typeof (MKAnnotationView))]
@@ -1455,6 +1480,14 @@ interface MKLocalSearchRequest : NSCopying {
[MacCatalyst (13, 1)]
[NullAllowed, Export ("pointOfInterestFilter", ArgumentSemantic.Copy)]
MKPointOfInterestFilter PointOfInterestFilter { get; set; }
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Export ("regionPriority", ArgumentSemantic.Assign)]
+ MKLocalSearchRegionPriority RegionPriority { get; set; }
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Export ("addressFilter", ArgumentSemantic.Copy), NullAllowed]
+ MKAddressFilter AddressFilter { get; set; }
}
[NoWatch]
@@ -2106,6 +2139,14 @@ interface MKLocalSearchCompleter {
[MacCatalyst (13, 1)]
[NullAllowed, Export ("pointOfInterestFilter", ArgumentSemantic.Copy)]
MKPointOfInterestFilter PointOfInterestFilter { get; set; }
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Export ("regionPriority", ArgumentSemantic.Assign)]
+ MKLocalSearchRegionPriority RegionPriority { get; set; }
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Export ("addressFilter", ArgumentSemantic.Copy), NullAllowed]
+ MKAddressFilter AddressFilter { get; set; }
}
interface IMKLocalSearchCompleterDelegate { }
@@ -2699,14 +2740,20 @@ interface MKMapFeatureAnnotation : MKAnnotation {
NSString PointOfInterestCategory { get; }
}
- [NoMac, iOS (16, 0), MacCatalyst (16, 0), NoWatch, NoTV]
+ [Mac (15, 0), iOS (16, 0), MacCatalyst (16, 0), NoWatch, TV (18, 0)]
[BaseType (typeof (NSObject))]
[DisableDefaultCtor]
interface MKMapItemRequest {
+ [NoMac, NoTV]
[Export ("initWithMapFeatureAnnotation:")]
[DesignatedInitializer]
NativeHandle Constructor (MKMapFeatureAnnotation mapFeatureAnnotation);
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Export ("initWithMapItemIdentifier:")]
+ [DesignatedInitializer]
+ NativeHandle Constructor (MKMapItemIdentifier identifier);
+
[Async]
[Export ("getMapItemWithCompletionHandler:")]
void GetMapItem (Action completionHandler);
@@ -2714,6 +2761,9 @@ interface MKMapItemRequest {
[Export ("cancel")]
void Cancel ();
+ [NoMac, NoTV]
+ [Deprecated (PlatformName.iOS, 18, 0, message: "Use 'MapFeatureAnnotation' instead.")]
+ [Deprecated (PlatformName.MacCatalyst, 18, 0, message: "Use 'MapFeatureAnnotation' instead.")]
[Export ("featureAnnotation")]
MKMapFeatureAnnotation FeatureAnnotation { get; }
@@ -2722,6 +2772,14 @@ interface MKMapItemRequest {
[Export ("isLoading")]
bool IsLoading { get; }
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Export ("mapItemIdentifier"), NullAllowed]
+ MKMapItemIdentifier MapItemIdentifier { get; }
+
+ [NoWatch, NoTV, NoMac, iOS (18, 0), MacCatalyst (18, 0)]
+ [Export ("mapFeatureAnnotation"), NullAllowed]
+ MKMapFeatureAnnotation MapFeatureAnnotation { get; }
}
[Mac (13, 0), iOS (16, 0), MacCatalyst (16, 0), NoWatch, TV (16, 0)]
@@ -2746,4 +2804,148 @@ interface MKStandardMapConfiguration {
[Export ("showsTraffic")]
bool ShowsTraffic { get; set; }
}
+
+ [Flags]
+ [Native]
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ enum MKAddressFilterOption : ulong {
+ Country = 1 << 0,
+ AdministrativeArea = 1 << 1,
+ SubAdministrativeArea = 1 << 2,
+ Locality = 1 << 3,
+ SubLocality = 1 << 4,
+ PostalCode = 1 << 5,
+ }
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [BaseType (typeof (NSObject))]
+ [DisableDefaultCtor]
+ interface MKAddressFilter : NSSecureCoding, NSCopying {
+ [Static]
+ [Export ("filterIncludingAll")]
+ MKAddressFilter IncludingAll { get; }
+
+ [Static]
+ [Export ("filterExcludingAll")]
+ MKAddressFilter ExcludingAll { get; }
+
+ [Export ("initIncludingOptions:")]
+ // [DesignatedInitializer] // this isn't a constructor, so [DesignatedInitializer] doesn't work
+ [Internal]
+ NativeHandle _InitIncludingOptions (MKAddressFilterOption options);
+
+ [Export ("initExcludingOptions:")]
+ // [DesignatedInitializer] // this isn't a constructor, so [DesignatedInitializer] doesn't work
+ [Internal]
+ NativeHandle _InitExcludingOptions (MKAddressFilterOption options);
+
+ [Export ("includesOptions:")]
+ bool Includes (MKAddressFilterOption options);
+
+ [Export ("excludesOptions:")]
+ bool Excludes (MKAddressFilterOption options);
+ }
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [BaseType (typeof (NSObject))]
+ [DisableDefaultCtor]
+ interface MKMapItemAnnotation : MKAnnotation {
+ [Export ("initWithMapItem:")]
+ [DesignatedInitializer]
+ NativeHandle Constructor (MKMapItem mapItem);
+
+ [Export ("mapItem", ArgumentSemantic.Strong)]
+ MKMapItem MapItem { get; }
+ }
+
+ [NoWatch, NoTV, Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [Protocol (BackwardsCompatibleCodeGeneration = false), Model]
+ [BaseType (typeof (NSObject))]
+ interface MKMapItemDetailViewControllerDelegate {
+ [Abstract]
+ [Export ("mapItemDetailViewControllerDidFinish:")]
+ void DidFinish (MKMapItemDetailViewController detailViewController);
+ }
+
+ interface IMKMapItemDetailViewControllerDelegate { }
+
+ [NoWatch, NoTV, Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [BaseType (typeof (UIViewController))]
+ [DisableDefaultCtor]
+ interface MKMapItemDetailViewController {
+ [Export ("mapItem", ArgumentSemantic.Strong), NullAllowed]
+ MKMapItem MapItem { get; set; }
+
+ [Export ("delegate", ArgumentSemantic.Weak), NullAllowed]
+ NSObject WeakDelegate { get; set; }
+
+ [Wrap ("WeakDelegate")]
+ IMKMapItemDetailViewControllerDelegate Delegate { get; set; }
+
+ [Export ("initWithMapItem:displaysMap:")]
+ NativeHandle Constructor ([NullAllowed] MKMapItem mapItem, bool displaysMap);
+
+ [Export ("initWithMapItem:")]
+ NativeHandle Constructor ([NullAllowed] MKMapItem mapItem);
+ }
+
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [BaseType (typeof (NSObject))]
+ [DisableDefaultCtor]
+ interface MKMapItemIdentifier : NSCopying, NSSecureCoding {
+ [Export ("initWithIdentifierString:")]
+ NativeHandle Constructor (string identifier);
+
+ [Export ("identifierString")]
+ string IdentifierString { get; }
+ }
+
+ [NoWatch, NoTV, Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [BaseType (typeof (NSObject))]
+ [DisableDefaultCtor]
+ interface MKSelectionAccessory {
+ [Static]
+ [Export ("mapItemDetailWithPresentationStyle:")]
+ MKSelectionAccessory Create (MKMapItemDetailSelectionAccessoryPresentationStyle presentationStyle);
+ }
+
+ [Native]
+ [NoWatch, NoTV, Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ enum MKMapItemDetailSelectionAccessoryCalloutStyle : long {
+ Automatic,
+ Full,
+ Compact,
+ }
+
+ [NoWatch, NoTV, Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ [BaseType (typeof (NSObject))]
+ [DisableDefaultCtor]
+ interface MKMapItemDetailSelectionAccessoryPresentationStyle {
+ [Static]
+ [Export ("automaticWithPresentationViewController:")]
+ MKMapItemDetailSelectionAccessoryPresentationStyle CreateAutomatic ([NullAllowed] UIViewController presentationViewController);
+
+ [Static]
+ [Export ("callout", ArgumentSemantic.Strong)]
+ MKMapItemDetailSelectionAccessoryPresentationStyle Callout { get; }
+
+ [Static]
+ [Export ("calloutWithCalloutStyle:")]
+ MKMapItemDetailSelectionAccessoryPresentationStyle CreateCallout (MKMapItemDetailSelectionAccessoryCalloutStyle style);
+
+ [Static]
+ [Export ("sheetPresentedFromViewController:")]
+ MKMapItemDetailSelectionAccessoryPresentationStyle CreateSheet (UIViewController viewController);
+
+ [Static]
+ [Export ("openInMaps", ArgumentSemantic.Strong)]
+ MKMapItemDetailSelectionAccessoryPresentationStyle OpenInMaps { get; }
+ }
+
+ [Native]
+ [NoWatch, TV (18, 0), Mac (15, 0), iOS (18, 0), MacCatalyst (18, 0)]
+ enum MKLocalSearchRegionPriority : long {
+ Default = 0,
+ Required,
+ }
}
diff --git a/tests/cecil-tests/Documentation.KnownFailures.txt b/tests/cecil-tests/Documentation.KnownFailures.txt
index bcfd599f96df..7b516ccac9f4 100644
--- a/tests/cecil-tests/Documentation.KnownFailures.txt
+++ b/tests/cecil-tests/Documentation.KnownFailures.txt
@@ -13461,6 +13461,12 @@ F:MailKit.MEMessageSecurityErrorCode.EncodingError
F:MailKit.MEMessageState.Draft
F:MailKit.MEMessageState.Received
F:MailKit.MEMessageState.Sending
+F:MapKit.MKAddressFilterOption.AdministrativeArea
+F:MapKit.MKAddressFilterOption.Country
+F:MapKit.MKAddressFilterOption.Locality
+F:MapKit.MKAddressFilterOption.PostalCode
+F:MapKit.MKAddressFilterOption.SubAdministrativeArea
+F:MapKit.MKAddressFilterOption.SubLocality
F:MapKit.MKAnnotationViewCollisionMode.Circle
F:MapKit.MKAnnotationViewCollisionMode.None
F:MapKit.MKAnnotationViewCollisionMode.Rectangle
@@ -13503,9 +13509,13 @@ F:MapKit.MKFeatureVisibility.Adaptive
F:MapKit.MKFeatureVisibility.Hidden
F:MapKit.MKFeatureVisibility.Visible
F:MapKit.MKLocalSearchCompleterResultType.Address
+F:MapKit.MKLocalSearchCompleterResultType.PhysicalFeature
F:MapKit.MKLocalSearchCompleterResultType.PointOfInterest
F:MapKit.MKLocalSearchCompleterResultType.Query
+F:MapKit.MKLocalSearchRegionPriority.Default
+F:MapKit.MKLocalSearchRegionPriority.Required
F:MapKit.MKLocalSearchResultType.Address
+F:MapKit.MKLocalSearchResultType.PhysicalFeature
F:MapKit.MKLocalSearchResultType.PointOfInterest
F:MapKit.MKLookAroundBadgePosition.BottomTrailing
F:MapKit.MKLookAroundBadgePosition.TopLeading
@@ -13520,6 +13530,9 @@ F:MapKit.MKMapFeatureOptions.Territories
F:MapKit.MKMapFeatureType.PhysicalFeature
F:MapKit.MKMapFeatureType.PointOfInterest
F:MapKit.MKMapFeatureType.Territory
+F:MapKit.MKMapItemDetailSelectionAccessoryCalloutStyle.Automatic
+F:MapKit.MKMapItemDetailSelectionAccessoryCalloutStyle.Compact
+F:MapKit.MKMapItemDetailSelectionAccessoryCalloutStyle.Full
F:MapKit.MKMapPoint.X
F:MapKit.MKMapPoint.Y
F:MapKit.MKMapRect.Null
@@ -13540,42 +13553,75 @@ F:MapKit.MKPinAnnotationColor.Purple
F:MapKit.MKPinAnnotationColor.Red
F:MapKit.MKPointOfInterestCategory.Airport
F:MapKit.MKPointOfInterestCategory.AmusementPark
+F:MapKit.MKPointOfInterestCategory.AnimalService
F:MapKit.MKPointOfInterestCategory.Aquarium
F:MapKit.MKPointOfInterestCategory.Atm
+F:MapKit.MKPointOfInterestCategory.AutomotiveRepair
F:MapKit.MKPointOfInterestCategory.Bakery
F:MapKit.MKPointOfInterestCategory.Bank
+F:MapKit.MKPointOfInterestCategory.Baseball
+F:MapKit.MKPointOfInterestCategory.Basketball
F:MapKit.MKPointOfInterestCategory.Beach
+F:MapKit.MKPointOfInterestCategory.Beauty
+F:MapKit.MKPointOfInterestCategory.Bowling
F:MapKit.MKPointOfInterestCategory.Brewery
F:MapKit.MKPointOfInterestCategory.Cafe
F:MapKit.MKPointOfInterestCategory.Campground
F:MapKit.MKPointOfInterestCategory.CarRental
+F:MapKit.MKPointOfInterestCategory.Castle
+F:MapKit.MKPointOfInterestCategory.ConventionCenter
+F:MapKit.MKPointOfInterestCategory.Distillery
F:MapKit.MKPointOfInterestCategory.EVCharger
+F:MapKit.MKPointOfInterestCategory.Fairground
F:MapKit.MKPointOfInterestCategory.FireStation
+F:MapKit.MKPointOfInterestCategory.Fishing
F:MapKit.MKPointOfInterestCategory.FitnessCenter
F:MapKit.MKPointOfInterestCategory.FoodMarket
+F:MapKit.MKPointOfInterestCategory.Fortress
F:MapKit.MKPointOfInterestCategory.GasStation
+F:MapKit.MKPointOfInterestCategory.GoKart
+F:MapKit.MKPointOfInterestCategory.Golf
+F:MapKit.MKPointOfInterestCategory.Hiking
F:MapKit.MKPointOfInterestCategory.Hospital
F:MapKit.MKPointOfInterestCategory.Hotel
+F:MapKit.MKPointOfInterestCategory.Kayaking
+F:MapKit.MKPointOfInterestCategory.Landmark
F:MapKit.MKPointOfInterestCategory.Laundry
F:MapKit.MKPointOfInterestCategory.Library
+F:MapKit.MKPointOfInterestCategory.Mailbox
F:MapKit.MKPointOfInterestCategory.Marina
+F:MapKit.MKPointOfInterestCategory.MiniGolf
F:MapKit.MKPointOfInterestCategory.MovieTheater
F:MapKit.MKPointOfInterestCategory.Museum
+F:MapKit.MKPointOfInterestCategory.MusicVenue
+F:MapKit.MKPointOfInterestCategory.NationalMonument
F:MapKit.MKPointOfInterestCategory.NationalPark
F:MapKit.MKPointOfInterestCategory.Nightlife
F:MapKit.MKPointOfInterestCategory.Park
F:MapKit.MKPointOfInterestCategory.Parking
F:MapKit.MKPointOfInterestCategory.Pharmacy
+F:MapKit.MKPointOfInterestCategory.Planetarium
F:MapKit.MKPointOfInterestCategory.Police
F:MapKit.MKPointOfInterestCategory.PostOffice
F:MapKit.MKPointOfInterestCategory.PublicTransport
F:MapKit.MKPointOfInterestCategory.Restaurant
F:MapKit.MKPointOfInterestCategory.Restroom
+F:MapKit.MKPointOfInterestCategory.RockClimbing
+F:MapKit.MKPointOfInterestCategory.RVPark
F:MapKit.MKPointOfInterestCategory.School
+F:MapKit.MKPointOfInterestCategory.SkatePark
+F:MapKit.MKPointOfInterestCategory.Skating
+F:MapKit.MKPointOfInterestCategory.Skiing
+F:MapKit.MKPointOfInterestCategory.Soccer
+F:MapKit.MKPointOfInterestCategory.Spa
F:MapKit.MKPointOfInterestCategory.Stadium
F:MapKit.MKPointOfInterestCategory.Store
+F:MapKit.MKPointOfInterestCategory.Surfing
+F:MapKit.MKPointOfInterestCategory.Swimming
+F:MapKit.MKPointOfInterestCategory.Tennis
F:MapKit.MKPointOfInterestCategory.Theater
F:MapKit.MKPointOfInterestCategory.University
+F:MapKit.MKPointOfInterestCategory.Volleyball
F:MapKit.MKPointOfInterestCategory.Winery
F:MapKit.MKPointOfInterestCategory.Zoo
F:MapKit.MKPointOfInterestFilterType.Excluding
@@ -39356,6 +39402,7 @@ M:MapKit.IMKLookAroundViewControllerDelegate.DidUpdateScene(MapKit.MKLookAroundV
M:MapKit.IMKLookAroundViewControllerDelegate.WillDismissFullScreen(MapKit.MKLookAroundViewController)
M:MapKit.IMKLookAroundViewControllerDelegate.WillPresentFullScreen(MapKit.MKLookAroundViewController)
M:MapKit.IMKLookAroundViewControllerDelegate.WillUpdateScene(MapKit.MKLookAroundViewController)
+M:MapKit.IMKMapItemDetailViewControllerDelegate.DidFinish(MapKit.MKMapItemDetailViewController)
M:MapKit.IMKMapViewDelegate.CalloutAccessoryControlTapped(MapKit.MKMapView,MapKit.MKAnnotationView,UIKit.UIControl)
M:MapKit.IMKMapViewDelegate.ChangedDragState(MapKit.MKMapView,MapKit.MKAnnotationView,MapKit.MKAnnotationViewDragState,MapKit.MKAnnotationViewDragState)
M:MapKit.IMKMapViewDelegate.CreateClusterAnnotation(MapKit.MKMapView,MapKit.IMKAnnotation[])
@@ -39372,6 +39419,7 @@ M:MapKit.IMKMapViewDelegate.DidSelectAnnotation(MapKit.MKMapView,MapKit.IMKAnnot
M:MapKit.IMKMapViewDelegate.DidSelectAnnotationView(MapKit.MKMapView,MapKit.MKAnnotationView)
M:MapKit.IMKMapViewDelegate.DidStopLocatingUser(MapKit.MKMapView)
M:MapKit.IMKMapViewDelegate.DidUpdateUserLocation(MapKit.MKMapView,MapKit.MKUserLocation)
+M:MapKit.IMKMapViewDelegate.GetSelectionAccessory(MapKit.MKMapView,MapKit.IMKAnnotation)
M:MapKit.IMKMapViewDelegate.GetViewForAnnotation(MapKit.MKMapView,MapKit.IMKAnnotation)
M:MapKit.IMKMapViewDelegate.GetViewForOverlay(MapKit.MKMapView,MapKit.IMKOverlay)
M:MapKit.IMKMapViewDelegate.LoadingMapFailed(MapKit.MKMapView,Foundation.NSError)
@@ -39385,6 +39433,8 @@ M:MapKit.IMKMapViewDelegate.WillStartRenderingMap(MapKit.MKMapView)
M:MapKit.IMKOverlay.Intersects(MapKit.MKMapRect)
M:MapKit.IMKReverseGeocoderDelegate.FailedWithError(MapKit.MKReverseGeocoder,Foundation.NSError)
M:MapKit.IMKReverseGeocoderDelegate.FoundWithPlacemark(MapKit.MKReverseGeocoder,MapKit.MKPlacemark)
+M:MapKit.MKAddressFilter.Copy(Foundation.NSZone)
+M:MapKit.MKAddressFilter.EncodeTo(Foundation.NSCoder)
M:MapKit.MKAnnotation_Extensions.GetSubtitle(MapKit.IMKAnnotation)
M:MapKit.MKAnnotation_Extensions.GetTitle(MapKit.IMKAnnotation)
M:MapKit.MKAnnotation_Extensions.SetCoordinate(MapKit.IMKAnnotation,CoreLocation.CLLocationCoordinate2D)
@@ -39465,6 +39515,11 @@ M:MapKit.MKMapItem.OpenInMapsAsync(Foundation.NSDictionary)
M:MapKit.MKMapItem.OpenMaps(MapKit.MKMapItem[],MapKit.MKLaunchOptions)
M:MapKit.MKMapItem.OpenMapsAsync(MapKit.MKMapItem[],Foundation.NSDictionary,UIKit.UIScene)
M:MapKit.MKMapItem.OpenMapsAsync(MapKit.MKMapItem[],Foundation.NSDictionary)
+M:MapKit.MKMapItemAnnotation.SetCoordinate(CoreLocation.CLLocationCoordinate2D)
+M:MapKit.MKMapItemDetailViewController.Dispose(System.Boolean)
+M:MapKit.MKMapItemDetailViewControllerDelegate.DidFinish(MapKit.MKMapItemDetailViewController)
+M:MapKit.MKMapItemIdentifier.Copy(Foundation.NSZone)
+M:MapKit.MKMapItemIdentifier.EncodeTo(Foundation.NSCoder)
M:MapKit.MKMapItemRequest.GetMapItemAsync
M:MapKit.MKMapPoint.#ctor(System.Double,System.Double)
M:MapKit.MKMapPoint.Equals(System.Object)
@@ -39566,6 +39621,7 @@ M:MapKit.MKMapViewDelegate_Extensions.DidSelectAnnotation(MapKit.IMKMapViewDeleg
M:MapKit.MKMapViewDelegate_Extensions.DidSelectAnnotationView(MapKit.IMKMapViewDelegate,MapKit.MKMapView,MapKit.MKAnnotationView)
M:MapKit.MKMapViewDelegate_Extensions.DidStopLocatingUser(MapKit.IMKMapViewDelegate,MapKit.MKMapView)
M:MapKit.MKMapViewDelegate_Extensions.DidUpdateUserLocation(MapKit.IMKMapViewDelegate,MapKit.MKMapView,MapKit.MKUserLocation)
+M:MapKit.MKMapViewDelegate_Extensions.GetSelectionAccessory(MapKit.IMKMapViewDelegate,MapKit.MKMapView,MapKit.IMKAnnotation)
M:MapKit.MKMapViewDelegate_Extensions.GetViewForAnnotation(MapKit.IMKMapViewDelegate,MapKit.MKMapView,MapKit.IMKAnnotation)
M:MapKit.MKMapViewDelegate_Extensions.GetViewForOverlay(MapKit.IMKMapViewDelegate,MapKit.MKMapView,MapKit.IMKOverlay)
M:MapKit.MKMapViewDelegate_Extensions.LoadingMapFailed(MapKit.IMKMapViewDelegate,MapKit.MKMapView,Foundation.NSError)
@@ -39592,6 +39648,7 @@ M:MapKit.MKMapViewDelegate.DidSelectAnnotation(MapKit.MKMapView,MapKit.IMKAnnota
M:MapKit.MKMapViewDelegate.DidSelectAnnotationView(MapKit.MKMapView,MapKit.MKAnnotationView)
M:MapKit.MKMapViewDelegate.DidStopLocatingUser(MapKit.MKMapView)
M:MapKit.MKMapViewDelegate.DidUpdateUserLocation(MapKit.MKMapView,MapKit.MKUserLocation)
+M:MapKit.MKMapViewDelegate.GetSelectionAccessory(MapKit.MKMapView,MapKit.IMKAnnotation)
M:MapKit.MKMapViewDelegate.GetViewForAnnotation(MapKit.MKMapView,MapKit.IMKAnnotation)
M:MapKit.MKMapViewDelegate.GetViewForOverlay(MapKit.MKMapView,MapKit.IMKOverlay)
M:MapKit.MKMapViewDelegate.LoadingMapFailed(MapKit.MKMapView,Foundation.NSError)
@@ -69422,6 +69479,7 @@ P:MapKit.IMKAnnotation.Subtitle
P:MapKit.IMKAnnotation.Title
P:MapKit.IMKOverlay.BoundingMapRect
P:MapKit.IMKOverlay.CanReplaceMapContent
+P:MapKit.MKAnnotation.CalloutInfoDidChangeNotification
P:MapKit.MKAnnotation.Coordinate
P:MapKit.MKAnnotation.Subtitle
P:MapKit.MKAnnotation.Title
@@ -69432,6 +69490,7 @@ P:MapKit.MKAnnotationView.Highlighted
P:MapKit.MKAnnotationView.Selected
P:MapKit.MKAnnotationViewEventArgs.View
P:MapKit.MKCircle.CanReplaceMapContent
+P:MapKit.MKClusterAnnotation.CalloutInfoDidChangeNotification
P:MapKit.MKClusterAnnotation.Coordinate
P:MapKit.MKDidAddOverlayRenderersEventArgs.Renderers
P:MapKit.MKDidFinishRenderingMapEventArgs.FullyRendered
@@ -69452,6 +69511,7 @@ P:MapKit.MKLookAroundSnapshotter.IsLoading
P:MapKit.MKLookAroundViewController.Delegate
P:MapKit.MKLookAroundViewController.NavigationEnabled
P:MapKit.MKMapCameraZoomRange.ZoomDefault
+P:MapKit.MKMapFeatureAnnotation.CalloutInfoDidChangeNotification
P:MapKit.MKMapFeatureAnnotation.Coordinate
P:MapKit.MKMapFeatureAnnotation.Subtitle
P:MapKit.MKMapFeatureAnnotation.Title
@@ -69459,6 +69519,11 @@ P:MapKit.MKMapItem.ReadableTypeIdentifiers
P:MapKit.MKMapItem.TypeIdentifier
P:MapKit.MKMapItem.WritableTypeIdentifiers
P:MapKit.MKMapItem.WritableTypeIdentifiersForItemProvider
+P:MapKit.MKMapItemAnnotation.CalloutInfoDidChangeNotification
+P:MapKit.MKMapItemAnnotation.Coordinate
+P:MapKit.MKMapItemAnnotation.Subtitle
+P:MapKit.MKMapItemAnnotation.Title
+P:MapKit.MKMapItemDetailViewController.Delegate
P:MapKit.MKMapItemRequest.IsCancelled
P:MapKit.MKMapItemRequest.IsLoading
P:MapKit.MKMapRect.Height
@@ -69477,6 +69542,7 @@ P:MapKit.MKMapSize.World
P:MapKit.MKMapSnapshotter.Loading
P:MapKit.MKMapView.CreateClusterAnnotation
P:MapKit.MKMapView.Delegate
+P:MapKit.MKMapView.GetSelectionAccessory
P:MapKit.MKMapView.GetViewForAnnotation
P:MapKit.MKMapView.GetViewForOverlay
P:MapKit.MKMapView.OverlayRenderer
@@ -69508,6 +69574,7 @@ P:MapKit.MKOverlay.BoundingMapRect
P:MapKit.MKOverlay.CanReplaceMapContent
P:MapKit.MKOverlayViewsEventArgs.OverlayViews
P:MapKit.MKPinAnnotationView.MKPinAnnotationViewAppearance.PinTintColor
+P:MapKit.MKPlacemark.CalloutInfoDidChangeNotification
P:MapKit.MKPlacemark.Coordinate
P:MapKit.MKPlacemark.Subtitle
P:MapKit.MKPlacemark.Title
@@ -69525,6 +69592,7 @@ P:MapKit.MKPolyline.CanReplaceMapContent
P:MapKit.MKPolyline.Coordinate
P:MapKit.MKReverseGeocoder.Delegate
P:MapKit.MKReverseGeocoder.Querying
+P:MapKit.MKShape.CalloutInfoDidChangeNotification
P:MapKit.MKShape.Coordinate
P:MapKit.MKTileOverlay.BoundingMapRect
P:MapKit.MKTileOverlay.Coordinate
@@ -82243,8 +82311,10 @@ T:MapKit.IMKAnnotation
T:MapKit.IMKGeoJsonObject
T:MapKit.IMKLocalSearchCompleterDelegate
T:MapKit.IMKLookAroundViewControllerDelegate
+T:MapKit.IMKMapItemDetailViewControllerDelegate
T:MapKit.IMKMapViewDelegate
T:MapKit.IMKOverlay
+T:MapKit.MKAddressFilterOption
T:MapKit.MKAnnotation
T:MapKit.MKAnnotationEventArgs
T:MapKit.MKAnnotationViewCollisionMode
@@ -82269,6 +82339,7 @@ T:MapKit.MKLaunchOptions
T:MapKit.MKLocalSearchCompleterDelegate
T:MapKit.MKLocalSearchCompleterResultType
T:MapKit.MKLocalSearchCompletionHandler
+T:MapKit.MKLocalSearchRegionPriority
T:MapKit.MKLocalSearchResultType
T:MapKit.MKLookAroundBadgePosition
T:MapKit.MKLookAroundViewControllerDelegate
@@ -82276,6 +82347,8 @@ T:MapKit.MKMapCameraZoomRangeType
T:MapKit.MKMapElevationStyle
T:MapKit.MKMapFeatureOptions
T:MapKit.MKMapFeatureType
+T:MapKit.MKMapItemDetailSelectionAccessoryCalloutStyle
+T:MapKit.MKMapItemDetailViewControllerDelegate
T:MapKit.MKMapPoint
T:MapKit.MKMapRect
T:MapKit.MKMapSize
@@ -82287,6 +82360,7 @@ T:MapKit.MKMapViewAnnotationEventArgs
T:MapKit.MKMapViewChangeEventArgs
T:MapKit.MKMapViewDefault
T:MapKit.MKMapViewDelegate
+T:MapKit.MKMapViewDelegateGetSelectionAccessory
T:MapKit.MKMapViewDragStateEventArgs
T:MapKit.MKMapViewOverlay
T:MapKit.MKOverlay
diff --git a/tests/introspection/ApiSelectorTest.cs b/tests/introspection/ApiSelectorTest.cs
index 53f78e0f7a74..592d509896cf 100644
--- a/tests/introspection/ApiSelectorTest.cs
+++ b/tests/introspection/ApiSelectorTest.cs
@@ -1316,6 +1316,10 @@ protected virtual bool SkipInit (string selector, MethodBase m)
// DDDevicePickerViewController
case "initWithBrowseDescriptor:parameters:":
return true;
+ // MKAddressFilter
+ case "initExcludingOptions:":
+ case "initIncludingOptions:":
+ return true;
// GKGameCenterViewController
case "initWithAchievementID:":
case "initWithLeaderboardSetID:":
diff --git a/tests/monotouch-test/MapKit/MKAddressFilterTest.cs b/tests/monotouch-test/MapKit/MKAddressFilterTest.cs
new file mode 100644
index 000000000000..d027720131cc
--- /dev/null
+++ b/tests/monotouch-test/MapKit/MKAddressFilterTest.cs
@@ -0,0 +1,32 @@
+#if HAS_MAPKIT && !WATCH
+
+using System;
+
+using Foundation;
+using MapKit;
+
+using NUnit.Framework;
+
+using Xamarin.Utils;
+
+namespace MonoTouchFixtures.MapKit {
+
+ [TestFixture]
+ [Preserve (AllMembers = true)]
+ public class AddressFilterTest {
+ [Test]
+ public void Constructors ()
+ {
+ TestRuntime.AssertXcodeVersion (16, 0);
+
+ using (var filter = new MKAddressFilter (MKAddressFilterOption.Country, MKAddressFilterConstructorOption.Exclude)) {
+ Assert.IsNotNull (filter, "Exclude filter");
+ }
+ using (var filter = new MKAddressFilter (MKAddressFilterOption.SubAdministrativeArea, MKAddressFilterConstructorOption.Include)) {
+ Assert.IsNotNull (filter, "Include filter");
+ }
+ }
+ }
+}
+
+#endif // HAS_MAPKIT && !WATCH
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-MapKit.ignore b/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-MapKit.ignore
deleted file mode 100644
index c895c0170eb3..000000000000
--- a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-MapKit.ignore
+++ /dev/null
@@ -1,5 +0,0 @@
-## unsorted
-
-!missing-field! MKAnnotationCalloutInfoDidChangeNotification not bound
-!missing-protocol-conformance! MKUserLocation should conform to MKAnnotation
-!missing-protocol-member! MKOverlay::coordinate not found
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-MapKit.todo b/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-MapKit.todo
deleted file mode 100644
index 43ec7812d79a..000000000000
--- a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-MapKit.todo
+++ /dev/null
@@ -1,83 +0,0 @@
-!missing-enum! MKAddressFilterOption not bound
-!missing-enum! MKLocalSearchRegionPriority not bound
-!missing-enum! MKMapItemDetailSelectionAccessoryCalloutStyle not bound
-!missing-enum-value! MKLocalSearchCompleterResultType native value MKLocalSearchCompleterResultTypePhysicalFeature = 8 not bound
-!missing-enum-value! MKLocalSearchResultType native value MKLocalSearchResultTypePhysicalFeature = 4 not bound
-!missing-field! MKPointOfInterestCategoryAnimalService not bound
-!missing-field! MKPointOfInterestCategoryAutomotiveRepair not bound
-!missing-field! MKPointOfInterestCategoryBaseball not bound
-!missing-field! MKPointOfInterestCategoryBasketball not bound
-!missing-field! MKPointOfInterestCategoryBeauty not bound
-!missing-field! MKPointOfInterestCategoryBowling not bound
-!missing-field! MKPointOfInterestCategoryCastle not bound
-!missing-field! MKPointOfInterestCategoryConventionCenter not bound
-!missing-field! MKPointOfInterestCategoryDistillery not bound
-!missing-field! MKPointOfInterestCategoryFairground not bound
-!missing-field! MKPointOfInterestCategoryFishing not bound
-!missing-field! MKPointOfInterestCategoryFortress not bound
-!missing-field! MKPointOfInterestCategoryGoKart not bound
-!missing-field! MKPointOfInterestCategoryGolf not bound
-!missing-field! MKPointOfInterestCategoryHiking not bound
-!missing-field! MKPointOfInterestCategoryKayaking not bound
-!missing-field! MKPointOfInterestCategoryLandmark not bound
-!missing-field! MKPointOfInterestCategoryMailbox not bound
-!missing-field! MKPointOfInterestCategoryMiniGolf not bound
-!missing-field! MKPointOfInterestCategoryMusicVenue not bound
-!missing-field! MKPointOfInterestCategoryNationalMonument not bound
-!missing-field! MKPointOfInterestCategoryPlanetarium not bound
-!missing-field! MKPointOfInterestCategoryRockClimbing not bound
-!missing-field! MKPointOfInterestCategoryRVPark not bound
-!missing-field! MKPointOfInterestCategorySkatePark not bound
-!missing-field! MKPointOfInterestCategorySkating not bound
-!missing-field! MKPointOfInterestCategorySkiing not bound
-!missing-field! MKPointOfInterestCategorySoccer not bound
-!missing-field! MKPointOfInterestCategorySpa not bound
-!missing-field! MKPointOfInterestCategorySurfing not bound
-!missing-field! MKPointOfInterestCategorySwimming not bound
-!missing-field! MKPointOfInterestCategoryTennis not bound
-!missing-field! MKPointOfInterestCategoryVolleyball not bound
-!missing-protocol! MKMapItemDetailViewControllerDelegate not bound
-!missing-protocol-member! MKMapViewDelegate::mapView:selectionAccessoryForAnnotation: not found
-!missing-selector! +MKAddressFilter::filterExcludingAll not bound
-!missing-selector! +MKAddressFilter::filterIncludingAll not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::automaticWithPresentationViewController: not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::callout not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::calloutWithCalloutStyle: not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::openInMaps not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::sheetPresentedFromViewController: not bound
-!missing-selector! +MKSelectionAccessory::mapItemDetailWithPresentationStyle: not bound
-!missing-selector! MKAddressFilter::excludesOptions: not bound
-!missing-selector! MKAddressFilter::includesOptions: not bound
-!missing-selector! MKAddressFilter::initExcludingOptions: not bound
-!missing-selector! MKAddressFilter::initIncludingOptions: not bound
-!missing-selector! MKAnnotationView::accessoryOffset not bound
-!missing-selector! MKAnnotationView::setAccessoryOffset: not bound
-!missing-selector! MKLocalSearchCompleter::addressFilter not bound
-!missing-selector! MKLocalSearchCompleter::regionPriority not bound
-!missing-selector! MKLocalSearchCompleter::setAddressFilter: not bound
-!missing-selector! MKLocalSearchCompleter::setRegionPriority: not bound
-!missing-selector! MKLocalSearchRequest::addressFilter not bound
-!missing-selector! MKLocalSearchRequest::regionPriority not bound
-!missing-selector! MKLocalSearchRequest::setAddressFilter: not bound
-!missing-selector! MKLocalSearchRequest::setRegionPriority: not bound
-!missing-selector! MKMapItem::alternateIdentifiers not bound
-!missing-selector! MKMapItem::identifier not bound
-!missing-selector! MKMapItemAnnotation::initWithMapItem: not bound
-!missing-selector! MKMapItemAnnotation::mapItem not bound
-!missing-selector! MKMapItemDetailViewController::delegate not bound
-!missing-selector! MKMapItemDetailViewController::initWithMapItem: not bound
-!missing-selector! MKMapItemDetailViewController::initWithMapItem:displaysMap: not bound
-!missing-selector! MKMapItemDetailViewController::mapItem not bound
-!missing-selector! MKMapItemDetailViewController::setDelegate: not bound
-!missing-selector! MKMapItemDetailViewController::setMapItem: not bound
-!missing-selector! MKMapItemIdentifier::identifierString not bound
-!missing-selector! MKMapItemIdentifier::initWithIdentifierString: not bound
-!missing-selector! MKMapItemRequest::initWithMapItemIdentifier: not bound
-!missing-selector! MKMapItemRequest::mapFeatureAnnotation not bound
-!missing-selector! MKMapItemRequest::mapItemIdentifier not bound
-!missing-type! MKAddressFilter not bound
-!missing-type! MKMapItemAnnotation not bound
-!missing-type! MKMapItemDetailSelectionAccessoryPresentationStyle not bound
-!missing-type! MKMapItemDetailViewController not bound
-!missing-type! MKMapItemIdentifier not bound
-!missing-type! MKSelectionAccessory not bound
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/common-MapKit.ignore b/tests/xtro-sharpie/api-annotations-dotnet/common-MapKit.ignore
index ef8dddbd4be5..0896680fdd5d 100644
--- a/tests/xtro-sharpie/api-annotations-dotnet/common-MapKit.ignore
+++ b/tests/xtro-sharpie/api-annotations-dotnet/common-MapKit.ignore
@@ -1,3 +1,4 @@
+## We've re-implemented these in managed code
!missing-field! MKMapRectNull not bound
!missing-field! MKMapRectWorld not bound
!missing-field! MKMapSizeWorld not bound
@@ -11,3 +12,9 @@
!deprecated-attribute-missing! MKMapView::setShowsBuildings: missing a [Deprecated] attribute
!deprecated-attribute-missing! MKMapView::showsTraffic missing a [Deprecated] attribute
!deprecated-attribute-missing! MKMapView::setShowsTraffic: missing a [Deprecated] attribute
+
+## This is rather hard to fix: see comment in the generator (search for MKAnnotation to find it)
+!missing-protocol-conformance! MKUserLocation should conform to MKAnnotation
+
+## The MKOverlay protocol implements the MKAnnotation protocol, which has a required 'coordinate' property, so the API is there.
+!missing-protocol-member! MKOverlay::coordinate not found
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-MapKit.ignore b/tests/xtro-sharpie/api-annotations-dotnet/iOS-MapKit.ignore
index c895c0170eb3..e69de29bb2d1 100644
--- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-MapKit.ignore
+++ b/tests/xtro-sharpie/api-annotations-dotnet/iOS-MapKit.ignore
@@ -1,5 +0,0 @@
-## unsorted
-
-!missing-field! MKAnnotationCalloutInfoDidChangeNotification not bound
-!missing-protocol-conformance! MKUserLocation should conform to MKAnnotation
-!missing-protocol-member! MKOverlay::coordinate not found
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-MapKit.todo b/tests/xtro-sharpie/api-annotations-dotnet/iOS-MapKit.todo
deleted file mode 100644
index b7e544c5f173..000000000000
--- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-MapKit.todo
+++ /dev/null
@@ -1,84 +0,0 @@
-!deprecated-attribute-missing! MKMapItemRequest::featureAnnotation missing a [Deprecated] attribute
-!missing-enum! MKAddressFilterOption not bound
-!missing-enum! MKLocalSearchRegionPriority not bound
-!missing-enum! MKMapItemDetailSelectionAccessoryCalloutStyle not bound
-!missing-enum-value! MKLocalSearchCompleterResultType native value MKLocalSearchCompleterResultTypePhysicalFeature = 8 not bound
-!missing-enum-value! MKLocalSearchResultType native value MKLocalSearchResultTypePhysicalFeature = 4 not bound
-!missing-field! MKPointOfInterestCategoryAnimalService not bound
-!missing-field! MKPointOfInterestCategoryAutomotiveRepair not bound
-!missing-field! MKPointOfInterestCategoryBaseball not bound
-!missing-field! MKPointOfInterestCategoryBasketball not bound
-!missing-field! MKPointOfInterestCategoryBeauty not bound
-!missing-field! MKPointOfInterestCategoryBowling not bound
-!missing-field! MKPointOfInterestCategoryCastle not bound
-!missing-field! MKPointOfInterestCategoryConventionCenter not bound
-!missing-field! MKPointOfInterestCategoryDistillery not bound
-!missing-field! MKPointOfInterestCategoryFairground not bound
-!missing-field! MKPointOfInterestCategoryFishing not bound
-!missing-field! MKPointOfInterestCategoryFortress not bound
-!missing-field! MKPointOfInterestCategoryGoKart not bound
-!missing-field! MKPointOfInterestCategoryGolf not bound
-!missing-field! MKPointOfInterestCategoryHiking not bound
-!missing-field! MKPointOfInterestCategoryKayaking not bound
-!missing-field! MKPointOfInterestCategoryLandmark not bound
-!missing-field! MKPointOfInterestCategoryMailbox not bound
-!missing-field! MKPointOfInterestCategoryMiniGolf not bound
-!missing-field! MKPointOfInterestCategoryMusicVenue not bound
-!missing-field! MKPointOfInterestCategoryNationalMonument not bound
-!missing-field! MKPointOfInterestCategoryPlanetarium not bound
-!missing-field! MKPointOfInterestCategoryRockClimbing not bound
-!missing-field! MKPointOfInterestCategoryRVPark not bound
-!missing-field! MKPointOfInterestCategorySkatePark not bound
-!missing-field! MKPointOfInterestCategorySkating not bound
-!missing-field! MKPointOfInterestCategorySkiing not bound
-!missing-field! MKPointOfInterestCategorySoccer not bound
-!missing-field! MKPointOfInterestCategorySpa not bound
-!missing-field! MKPointOfInterestCategorySurfing not bound
-!missing-field! MKPointOfInterestCategorySwimming not bound
-!missing-field! MKPointOfInterestCategoryTennis not bound
-!missing-field! MKPointOfInterestCategoryVolleyball not bound
-!missing-protocol! MKMapItemDetailViewControllerDelegate not bound
-!missing-protocol-member! MKMapViewDelegate::mapView:selectionAccessoryForAnnotation: not found
-!missing-selector! +MKAddressFilter::filterExcludingAll not bound
-!missing-selector! +MKAddressFilter::filterIncludingAll not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::automaticWithPresentationViewController: not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::callout not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::calloutWithCalloutStyle: not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::openInMaps not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::sheetPresentedFromViewController: not bound
-!missing-selector! +MKSelectionAccessory::mapItemDetailWithPresentationStyle: not bound
-!missing-selector! MKAddressFilter::excludesOptions: not bound
-!missing-selector! MKAddressFilter::includesOptions: not bound
-!missing-selector! MKAddressFilter::initExcludingOptions: not bound
-!missing-selector! MKAddressFilter::initIncludingOptions: not bound
-!missing-selector! MKAnnotationView::accessoryOffset not bound
-!missing-selector! MKAnnotationView::setAccessoryOffset: not bound
-!missing-selector! MKLocalSearchCompleter::addressFilter not bound
-!missing-selector! MKLocalSearchCompleter::regionPriority not bound
-!missing-selector! MKLocalSearchCompleter::setAddressFilter: not bound
-!missing-selector! MKLocalSearchCompleter::setRegionPriority: not bound
-!missing-selector! MKLocalSearchRequest::addressFilter not bound
-!missing-selector! MKLocalSearchRequest::regionPriority not bound
-!missing-selector! MKLocalSearchRequest::setAddressFilter: not bound
-!missing-selector! MKLocalSearchRequest::setRegionPriority: not bound
-!missing-selector! MKMapItem::alternateIdentifiers not bound
-!missing-selector! MKMapItem::identifier not bound
-!missing-selector! MKMapItemAnnotation::initWithMapItem: not bound
-!missing-selector! MKMapItemAnnotation::mapItem not bound
-!missing-selector! MKMapItemDetailViewController::delegate not bound
-!missing-selector! MKMapItemDetailViewController::initWithMapItem: not bound
-!missing-selector! MKMapItemDetailViewController::initWithMapItem:displaysMap: not bound
-!missing-selector! MKMapItemDetailViewController::mapItem not bound
-!missing-selector! MKMapItemDetailViewController::setDelegate: not bound
-!missing-selector! MKMapItemDetailViewController::setMapItem: not bound
-!missing-selector! MKMapItemIdentifier::identifierString not bound
-!missing-selector! MKMapItemIdentifier::initWithIdentifierString: not bound
-!missing-selector! MKMapItemRequest::initWithMapItemIdentifier: not bound
-!missing-selector! MKMapItemRequest::mapFeatureAnnotation not bound
-!missing-selector! MKMapItemRequest::mapItemIdentifier not bound
-!missing-type! MKAddressFilter not bound
-!missing-type! MKMapItemAnnotation not bound
-!missing-type! MKMapItemDetailSelectionAccessoryPresentationStyle not bound
-!missing-type! MKMapItemDetailViewController not bound
-!missing-type! MKMapItemIdentifier not bound
-!missing-type! MKSelectionAccessory not bound
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/macOS-MapKit.ignore b/tests/xtro-sharpie/api-annotations-dotnet/macOS-MapKit.ignore
index 4152d279f79a..68ffaa04db33 100644
--- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-MapKit.ignore
+++ b/tests/xtro-sharpie/api-annotations-dotnet/macOS-MapKit.ignore
@@ -1,6 +1 @@
-!missing-field! MKAnnotationCalloutInfoDidChangeNotification not bound
-!missing-protocol-conformance! MKUserLocation should conform to MKAnnotation
-!missing-protocol-member! MKOverlay::coordinate not found
-
-## Marked as unavailable on macOS
!missing-enum-value! MKUserTrackingMode native value MKUserTrackingModeFollowWithHeading = 2 not bound
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/macOS-MapKit.todo b/tests/xtro-sharpie/api-annotations-dotnet/macOS-MapKit.todo
deleted file mode 100644
index 8b1ae04c7475..000000000000
--- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-MapKit.todo
+++ /dev/null
@@ -1,87 +0,0 @@
-!missing-enum! MKAddressFilterOption not bound
-!missing-enum! MKLocalSearchRegionPriority not bound
-!missing-enum! MKMapItemDetailSelectionAccessoryCalloutStyle not bound
-!missing-enum-value! MKLocalSearchCompleterResultType native value MKLocalSearchCompleterResultTypePhysicalFeature = 8 not bound
-!missing-enum-value! MKLocalSearchResultType native value MKLocalSearchResultTypePhysicalFeature = 4 not bound
-!missing-field! MKPointOfInterestCategoryAnimalService not bound
-!missing-field! MKPointOfInterestCategoryAutomotiveRepair not bound
-!missing-field! MKPointOfInterestCategoryBaseball not bound
-!missing-field! MKPointOfInterestCategoryBasketball not bound
-!missing-field! MKPointOfInterestCategoryBeauty not bound
-!missing-field! MKPointOfInterestCategoryBowling not bound
-!missing-field! MKPointOfInterestCategoryCastle not bound
-!missing-field! MKPointOfInterestCategoryConventionCenter not bound
-!missing-field! MKPointOfInterestCategoryDistillery not bound
-!missing-field! MKPointOfInterestCategoryFairground not bound
-!missing-field! MKPointOfInterestCategoryFishing not bound
-!missing-field! MKPointOfInterestCategoryFortress not bound
-!missing-field! MKPointOfInterestCategoryGoKart not bound
-!missing-field! MKPointOfInterestCategoryGolf not bound
-!missing-field! MKPointOfInterestCategoryHiking not bound
-!missing-field! MKPointOfInterestCategoryKayaking not bound
-!missing-field! MKPointOfInterestCategoryLandmark not bound
-!missing-field! MKPointOfInterestCategoryMailbox not bound
-!missing-field! MKPointOfInterestCategoryMiniGolf not bound
-!missing-field! MKPointOfInterestCategoryMusicVenue not bound
-!missing-field! MKPointOfInterestCategoryNationalMonument not bound
-!missing-field! MKPointOfInterestCategoryPlanetarium not bound
-!missing-field! MKPointOfInterestCategoryRockClimbing not bound
-!missing-field! MKPointOfInterestCategoryRVPark not bound
-!missing-field! MKPointOfInterestCategorySkatePark not bound
-!missing-field! MKPointOfInterestCategorySkating not bound
-!missing-field! MKPointOfInterestCategorySkiing not bound
-!missing-field! MKPointOfInterestCategorySoccer not bound
-!missing-field! MKPointOfInterestCategorySpa not bound
-!missing-field! MKPointOfInterestCategorySurfing not bound
-!missing-field! MKPointOfInterestCategorySwimming not bound
-!missing-field! MKPointOfInterestCategoryTennis not bound
-!missing-field! MKPointOfInterestCategoryVolleyball not bound
-!missing-protocol! MKMapItemDetailViewControllerDelegate not bound
-!missing-protocol-member! MKMapViewDelegate::mapView:selectionAccessoryForAnnotation: not found
-!missing-selector! +MKAddressFilter::filterExcludingAll not bound
-!missing-selector! +MKAddressFilter::filterIncludingAll not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::automaticWithPresentationViewController: not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::callout not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::calloutWithCalloutStyle: not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::openInMaps not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::sheetPresentedFromViewController: not bound
-!missing-selector! +MKSelectionAccessory::mapItemDetailWithPresentationStyle: not bound
-!missing-selector! MKAddressFilter::excludesOptions: not bound
-!missing-selector! MKAddressFilter::includesOptions: not bound
-!missing-selector! MKAddressFilter::initExcludingOptions: not bound
-!missing-selector! MKAddressFilter::initIncludingOptions: not bound
-!missing-selector! MKAnnotationView::accessoryOffset not bound
-!missing-selector! MKAnnotationView::setAccessoryOffset: not bound
-!missing-selector! MKLocalSearchCompleter::addressFilter not bound
-!missing-selector! MKLocalSearchCompleter::regionPriority not bound
-!missing-selector! MKLocalSearchCompleter::setAddressFilter: not bound
-!missing-selector! MKLocalSearchCompleter::setRegionPriority: not bound
-!missing-selector! MKLocalSearchRequest::addressFilter not bound
-!missing-selector! MKLocalSearchRequest::regionPriority not bound
-!missing-selector! MKLocalSearchRequest::setAddressFilter: not bound
-!missing-selector! MKLocalSearchRequest::setRegionPriority: not bound
-!missing-selector! MKMapItem::alternateIdentifiers not bound
-!missing-selector! MKMapItem::identifier not bound
-!missing-selector! MKMapItemAnnotation::initWithMapItem: not bound
-!missing-selector! MKMapItemAnnotation::mapItem not bound
-!missing-selector! MKMapItemDetailViewController::delegate not bound
-!missing-selector! MKMapItemDetailViewController::initWithMapItem: not bound
-!missing-selector! MKMapItemDetailViewController::initWithMapItem:displaysMap: not bound
-!missing-selector! MKMapItemDetailViewController::mapItem not bound
-!missing-selector! MKMapItemDetailViewController::setDelegate: not bound
-!missing-selector! MKMapItemDetailViewController::setMapItem: not bound
-!missing-selector! MKMapItemIdentifier::identifierString not bound
-!missing-selector! MKMapItemIdentifier::initWithIdentifierString: not bound
-!missing-selector! MKMapItemRequest::cancel not bound
-!missing-selector! MKMapItemRequest::getMapItemWithCompletionHandler: not bound
-!missing-selector! MKMapItemRequest::initWithMapItemIdentifier: not bound
-!missing-selector! MKMapItemRequest::isCancelled not bound
-!missing-selector! MKMapItemRequest::isLoading not bound
-!missing-selector! MKMapItemRequest::mapItemIdentifier not bound
-!missing-type! MKAddressFilter not bound
-!missing-type! MKMapItemAnnotation not bound
-!missing-type! MKMapItemDetailSelectionAccessoryPresentationStyle not bound
-!missing-type! MKMapItemDetailViewController not bound
-!missing-type! MKMapItemIdentifier not bound
-!missing-type! MKMapItemRequest not bound
-!missing-type! MKSelectionAccessory not bound
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-MapKit.ignore b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-MapKit.ignore
index 0e7e37ab7855..68ffaa04db33 100644
--- a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-MapKit.ignore
+++ b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-MapKit.ignore
@@ -1,6 +1 @@
-!missing-field! MKAnnotationCalloutInfoDidChangeNotification not bound
-!missing-protocol-conformance! MKUserLocation should conform to MKAnnotation
-!missing-protocol-member! MKOverlay::coordinate not found
-
-## Marked as unavailable on tvOS
!missing-enum-value! MKUserTrackingMode native value MKUserTrackingModeFollowWithHeading = 2 not bound
diff --git a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-MapKit.todo b/tests/xtro-sharpie/api-annotations-dotnet/tvOS-MapKit.todo
deleted file mode 100644
index 98477f58b672..000000000000
--- a/tests/xtro-sharpie/api-annotations-dotnet/tvOS-MapKit.todo
+++ /dev/null
@@ -1,67 +0,0 @@
-!missing-enum! MKAddressFilterOption not bound
-!missing-enum! MKLocalSearchRegionPriority not bound
-!missing-enum-value! MKLocalSearchCompleterResultType native value MKLocalSearchCompleterResultTypePhysicalFeature = 8 not bound
-!missing-enum-value! MKLocalSearchResultType native value MKLocalSearchResultTypePhysicalFeature = 4 not bound
-!missing-field! MKPointOfInterestCategoryAnimalService not bound
-!missing-field! MKPointOfInterestCategoryAutomotiveRepair not bound
-!missing-field! MKPointOfInterestCategoryBaseball not bound
-!missing-field! MKPointOfInterestCategoryBasketball not bound
-!missing-field! MKPointOfInterestCategoryBeauty not bound
-!missing-field! MKPointOfInterestCategoryBowling not bound
-!missing-field! MKPointOfInterestCategoryCastle not bound
-!missing-field! MKPointOfInterestCategoryConventionCenter not bound
-!missing-field! MKPointOfInterestCategoryDistillery not bound
-!missing-field! MKPointOfInterestCategoryFairground not bound
-!missing-field! MKPointOfInterestCategoryFishing not bound
-!missing-field! MKPointOfInterestCategoryFortress not bound
-!missing-field! MKPointOfInterestCategoryGoKart not bound
-!missing-field! MKPointOfInterestCategoryGolf not bound
-!missing-field! MKPointOfInterestCategoryHiking not bound
-!missing-field! MKPointOfInterestCategoryKayaking not bound
-!missing-field! MKPointOfInterestCategoryLandmark not bound
-!missing-field! MKPointOfInterestCategoryMailbox not bound
-!missing-field! MKPointOfInterestCategoryMiniGolf not bound
-!missing-field! MKPointOfInterestCategoryMusicVenue not bound
-!missing-field! MKPointOfInterestCategoryNationalMonument not bound
-!missing-field! MKPointOfInterestCategoryPlanetarium not bound
-!missing-field! MKPointOfInterestCategoryRockClimbing not bound
-!missing-field! MKPointOfInterestCategoryRVPark not bound
-!missing-field! MKPointOfInterestCategorySkatePark not bound
-!missing-field! MKPointOfInterestCategorySkating not bound
-!missing-field! MKPointOfInterestCategorySkiing not bound
-!missing-field! MKPointOfInterestCategorySoccer not bound
-!missing-field! MKPointOfInterestCategorySpa not bound
-!missing-field! MKPointOfInterestCategorySurfing not bound
-!missing-field! MKPointOfInterestCategorySwimming not bound
-!missing-field! MKPointOfInterestCategoryTennis not bound
-!missing-field! MKPointOfInterestCategoryVolleyball not bound
-!missing-selector! +MKAddressFilter::filterExcludingAll not bound
-!missing-selector! +MKAddressFilter::filterIncludingAll not bound
-!missing-selector! MKAddressFilter::excludesOptions: not bound
-!missing-selector! MKAddressFilter::includesOptions: not bound
-!missing-selector! MKAddressFilter::initExcludingOptions: not bound
-!missing-selector! MKAddressFilter::initIncludingOptions: not bound
-!missing-selector! MKLocalSearchCompleter::addressFilter not bound
-!missing-selector! MKLocalSearchCompleter::regionPriority not bound
-!missing-selector! MKLocalSearchCompleter::setAddressFilter: not bound
-!missing-selector! MKLocalSearchCompleter::setRegionPriority: not bound
-!missing-selector! MKLocalSearchRequest::addressFilter not bound
-!missing-selector! MKLocalSearchRequest::regionPriority not bound
-!missing-selector! MKLocalSearchRequest::setAddressFilter: not bound
-!missing-selector! MKLocalSearchRequest::setRegionPriority: not bound
-!missing-selector! MKMapItem::alternateIdentifiers not bound
-!missing-selector! MKMapItem::identifier not bound
-!missing-selector! MKMapItemAnnotation::initWithMapItem: not bound
-!missing-selector! MKMapItemAnnotation::mapItem not bound
-!missing-selector! MKMapItemIdentifier::identifierString not bound
-!missing-selector! MKMapItemIdentifier::initWithIdentifierString: not bound
-!missing-selector! MKMapItemRequest::cancel not bound
-!missing-selector! MKMapItemRequest::getMapItemWithCompletionHandler: not bound
-!missing-selector! MKMapItemRequest::initWithMapItemIdentifier: not bound
-!missing-selector! MKMapItemRequest::isCancelled not bound
-!missing-selector! MKMapItemRequest::isLoading not bound
-!missing-selector! MKMapItemRequest::mapItemIdentifier not bound
-!missing-type! MKAddressFilter not bound
-!missing-type! MKMapItemAnnotation not bound
-!missing-type! MKMapItemIdentifier not bound
-!missing-type! MKMapItemRequest not bound
diff --git a/tests/xtro-sharpie/iOS-MapKit.ignore b/tests/xtro-sharpie/iOS-MapKit.ignore
index fa87e742ccf7..a83ecd9a5097 100644
--- a/tests/xtro-sharpie/iOS-MapKit.ignore
+++ b/tests/xtro-sharpie/iOS-MapKit.ignore
@@ -1,6 +1,5 @@
## unsorted
-!missing-field! MKAnnotationCalloutInfoDidChangeNotification not bound
!missing-protocol-conformance! MKUserLocation should conform to MKAnnotation
!missing-protocol-member! MKOverlay::coordinate not found
diff --git a/tests/xtro-sharpie/iOS-MapKit.todo b/tests/xtro-sharpie/iOS-MapKit.todo
deleted file mode 100644
index b7e544c5f173..000000000000
--- a/tests/xtro-sharpie/iOS-MapKit.todo
+++ /dev/null
@@ -1,84 +0,0 @@
-!deprecated-attribute-missing! MKMapItemRequest::featureAnnotation missing a [Deprecated] attribute
-!missing-enum! MKAddressFilterOption not bound
-!missing-enum! MKLocalSearchRegionPriority not bound
-!missing-enum! MKMapItemDetailSelectionAccessoryCalloutStyle not bound
-!missing-enum-value! MKLocalSearchCompleterResultType native value MKLocalSearchCompleterResultTypePhysicalFeature = 8 not bound
-!missing-enum-value! MKLocalSearchResultType native value MKLocalSearchResultTypePhysicalFeature = 4 not bound
-!missing-field! MKPointOfInterestCategoryAnimalService not bound
-!missing-field! MKPointOfInterestCategoryAutomotiveRepair not bound
-!missing-field! MKPointOfInterestCategoryBaseball not bound
-!missing-field! MKPointOfInterestCategoryBasketball not bound
-!missing-field! MKPointOfInterestCategoryBeauty not bound
-!missing-field! MKPointOfInterestCategoryBowling not bound
-!missing-field! MKPointOfInterestCategoryCastle not bound
-!missing-field! MKPointOfInterestCategoryConventionCenter not bound
-!missing-field! MKPointOfInterestCategoryDistillery not bound
-!missing-field! MKPointOfInterestCategoryFairground not bound
-!missing-field! MKPointOfInterestCategoryFishing not bound
-!missing-field! MKPointOfInterestCategoryFortress not bound
-!missing-field! MKPointOfInterestCategoryGoKart not bound
-!missing-field! MKPointOfInterestCategoryGolf not bound
-!missing-field! MKPointOfInterestCategoryHiking not bound
-!missing-field! MKPointOfInterestCategoryKayaking not bound
-!missing-field! MKPointOfInterestCategoryLandmark not bound
-!missing-field! MKPointOfInterestCategoryMailbox not bound
-!missing-field! MKPointOfInterestCategoryMiniGolf not bound
-!missing-field! MKPointOfInterestCategoryMusicVenue not bound
-!missing-field! MKPointOfInterestCategoryNationalMonument not bound
-!missing-field! MKPointOfInterestCategoryPlanetarium not bound
-!missing-field! MKPointOfInterestCategoryRockClimbing not bound
-!missing-field! MKPointOfInterestCategoryRVPark not bound
-!missing-field! MKPointOfInterestCategorySkatePark not bound
-!missing-field! MKPointOfInterestCategorySkating not bound
-!missing-field! MKPointOfInterestCategorySkiing not bound
-!missing-field! MKPointOfInterestCategorySoccer not bound
-!missing-field! MKPointOfInterestCategorySpa not bound
-!missing-field! MKPointOfInterestCategorySurfing not bound
-!missing-field! MKPointOfInterestCategorySwimming not bound
-!missing-field! MKPointOfInterestCategoryTennis not bound
-!missing-field! MKPointOfInterestCategoryVolleyball not bound
-!missing-protocol! MKMapItemDetailViewControllerDelegate not bound
-!missing-protocol-member! MKMapViewDelegate::mapView:selectionAccessoryForAnnotation: not found
-!missing-selector! +MKAddressFilter::filterExcludingAll not bound
-!missing-selector! +MKAddressFilter::filterIncludingAll not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::automaticWithPresentationViewController: not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::callout not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::calloutWithCalloutStyle: not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::openInMaps not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::sheetPresentedFromViewController: not bound
-!missing-selector! +MKSelectionAccessory::mapItemDetailWithPresentationStyle: not bound
-!missing-selector! MKAddressFilter::excludesOptions: not bound
-!missing-selector! MKAddressFilter::includesOptions: not bound
-!missing-selector! MKAddressFilter::initExcludingOptions: not bound
-!missing-selector! MKAddressFilter::initIncludingOptions: not bound
-!missing-selector! MKAnnotationView::accessoryOffset not bound
-!missing-selector! MKAnnotationView::setAccessoryOffset: not bound
-!missing-selector! MKLocalSearchCompleter::addressFilter not bound
-!missing-selector! MKLocalSearchCompleter::regionPriority not bound
-!missing-selector! MKLocalSearchCompleter::setAddressFilter: not bound
-!missing-selector! MKLocalSearchCompleter::setRegionPriority: not bound
-!missing-selector! MKLocalSearchRequest::addressFilter not bound
-!missing-selector! MKLocalSearchRequest::regionPriority not bound
-!missing-selector! MKLocalSearchRequest::setAddressFilter: not bound
-!missing-selector! MKLocalSearchRequest::setRegionPriority: not bound
-!missing-selector! MKMapItem::alternateIdentifiers not bound
-!missing-selector! MKMapItem::identifier not bound
-!missing-selector! MKMapItemAnnotation::initWithMapItem: not bound
-!missing-selector! MKMapItemAnnotation::mapItem not bound
-!missing-selector! MKMapItemDetailViewController::delegate not bound
-!missing-selector! MKMapItemDetailViewController::initWithMapItem: not bound
-!missing-selector! MKMapItemDetailViewController::initWithMapItem:displaysMap: not bound
-!missing-selector! MKMapItemDetailViewController::mapItem not bound
-!missing-selector! MKMapItemDetailViewController::setDelegate: not bound
-!missing-selector! MKMapItemDetailViewController::setMapItem: not bound
-!missing-selector! MKMapItemIdentifier::identifierString not bound
-!missing-selector! MKMapItemIdentifier::initWithIdentifierString: not bound
-!missing-selector! MKMapItemRequest::initWithMapItemIdentifier: not bound
-!missing-selector! MKMapItemRequest::mapFeatureAnnotation not bound
-!missing-selector! MKMapItemRequest::mapItemIdentifier not bound
-!missing-type! MKAddressFilter not bound
-!missing-type! MKMapItemAnnotation not bound
-!missing-type! MKMapItemDetailSelectionAccessoryPresentationStyle not bound
-!missing-type! MKMapItemDetailViewController not bound
-!missing-type! MKMapItemIdentifier not bound
-!missing-type! MKSelectionAccessory not bound
diff --git a/tests/xtro-sharpie/macOS-MapKit.ignore b/tests/xtro-sharpie/macOS-MapKit.ignore
index a7aa2ddf853b..1d8daa8081dd 100644
--- a/tests/xtro-sharpie/macOS-MapKit.ignore
+++ b/tests/xtro-sharpie/macOS-MapKit.ignore
@@ -1,4 +1,3 @@
-!missing-field! MKAnnotationCalloutInfoDidChangeNotification not bound
!missing-protocol-conformance! MKUserLocation should conform to MKAnnotation
!missing-protocol-member! MKOverlay::coordinate not found
diff --git a/tests/xtro-sharpie/macOS-MapKit.todo b/tests/xtro-sharpie/macOS-MapKit.todo
deleted file mode 100644
index 8b1ae04c7475..000000000000
--- a/tests/xtro-sharpie/macOS-MapKit.todo
+++ /dev/null
@@ -1,87 +0,0 @@
-!missing-enum! MKAddressFilterOption not bound
-!missing-enum! MKLocalSearchRegionPriority not bound
-!missing-enum! MKMapItemDetailSelectionAccessoryCalloutStyle not bound
-!missing-enum-value! MKLocalSearchCompleterResultType native value MKLocalSearchCompleterResultTypePhysicalFeature = 8 not bound
-!missing-enum-value! MKLocalSearchResultType native value MKLocalSearchResultTypePhysicalFeature = 4 not bound
-!missing-field! MKPointOfInterestCategoryAnimalService not bound
-!missing-field! MKPointOfInterestCategoryAutomotiveRepair not bound
-!missing-field! MKPointOfInterestCategoryBaseball not bound
-!missing-field! MKPointOfInterestCategoryBasketball not bound
-!missing-field! MKPointOfInterestCategoryBeauty not bound
-!missing-field! MKPointOfInterestCategoryBowling not bound
-!missing-field! MKPointOfInterestCategoryCastle not bound
-!missing-field! MKPointOfInterestCategoryConventionCenter not bound
-!missing-field! MKPointOfInterestCategoryDistillery not bound
-!missing-field! MKPointOfInterestCategoryFairground not bound
-!missing-field! MKPointOfInterestCategoryFishing not bound
-!missing-field! MKPointOfInterestCategoryFortress not bound
-!missing-field! MKPointOfInterestCategoryGoKart not bound
-!missing-field! MKPointOfInterestCategoryGolf not bound
-!missing-field! MKPointOfInterestCategoryHiking not bound
-!missing-field! MKPointOfInterestCategoryKayaking not bound
-!missing-field! MKPointOfInterestCategoryLandmark not bound
-!missing-field! MKPointOfInterestCategoryMailbox not bound
-!missing-field! MKPointOfInterestCategoryMiniGolf not bound
-!missing-field! MKPointOfInterestCategoryMusicVenue not bound
-!missing-field! MKPointOfInterestCategoryNationalMonument not bound
-!missing-field! MKPointOfInterestCategoryPlanetarium not bound
-!missing-field! MKPointOfInterestCategoryRockClimbing not bound
-!missing-field! MKPointOfInterestCategoryRVPark not bound
-!missing-field! MKPointOfInterestCategorySkatePark not bound
-!missing-field! MKPointOfInterestCategorySkating not bound
-!missing-field! MKPointOfInterestCategorySkiing not bound
-!missing-field! MKPointOfInterestCategorySoccer not bound
-!missing-field! MKPointOfInterestCategorySpa not bound
-!missing-field! MKPointOfInterestCategorySurfing not bound
-!missing-field! MKPointOfInterestCategorySwimming not bound
-!missing-field! MKPointOfInterestCategoryTennis not bound
-!missing-field! MKPointOfInterestCategoryVolleyball not bound
-!missing-protocol! MKMapItemDetailViewControllerDelegate not bound
-!missing-protocol-member! MKMapViewDelegate::mapView:selectionAccessoryForAnnotation: not found
-!missing-selector! +MKAddressFilter::filterExcludingAll not bound
-!missing-selector! +MKAddressFilter::filterIncludingAll not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::automaticWithPresentationViewController: not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::callout not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::calloutWithCalloutStyle: not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::openInMaps not bound
-!missing-selector! +MKMapItemDetailSelectionAccessoryPresentationStyle::sheetPresentedFromViewController: not bound
-!missing-selector! +MKSelectionAccessory::mapItemDetailWithPresentationStyle: not bound
-!missing-selector! MKAddressFilter::excludesOptions: not bound
-!missing-selector! MKAddressFilter::includesOptions: not bound
-!missing-selector! MKAddressFilter::initExcludingOptions: not bound
-!missing-selector! MKAddressFilter::initIncludingOptions: not bound
-!missing-selector! MKAnnotationView::accessoryOffset not bound
-!missing-selector! MKAnnotationView::setAccessoryOffset: not bound
-!missing-selector! MKLocalSearchCompleter::addressFilter not bound
-!missing-selector! MKLocalSearchCompleter::regionPriority not bound
-!missing-selector! MKLocalSearchCompleter::setAddressFilter: not bound
-!missing-selector! MKLocalSearchCompleter::setRegionPriority: not bound
-!missing-selector! MKLocalSearchRequest::addressFilter not bound
-!missing-selector! MKLocalSearchRequest::regionPriority not bound
-!missing-selector! MKLocalSearchRequest::setAddressFilter: not bound
-!missing-selector! MKLocalSearchRequest::setRegionPriority: not bound
-!missing-selector! MKMapItem::alternateIdentifiers not bound
-!missing-selector! MKMapItem::identifier not bound
-!missing-selector! MKMapItemAnnotation::initWithMapItem: not bound
-!missing-selector! MKMapItemAnnotation::mapItem not bound
-!missing-selector! MKMapItemDetailViewController::delegate not bound
-!missing-selector! MKMapItemDetailViewController::initWithMapItem: not bound
-!missing-selector! MKMapItemDetailViewController::initWithMapItem:displaysMap: not bound
-!missing-selector! MKMapItemDetailViewController::mapItem not bound
-!missing-selector! MKMapItemDetailViewController::setDelegate: not bound
-!missing-selector! MKMapItemDetailViewController::setMapItem: not bound
-!missing-selector! MKMapItemIdentifier::identifierString not bound
-!missing-selector! MKMapItemIdentifier::initWithIdentifierString: not bound
-!missing-selector! MKMapItemRequest::cancel not bound
-!missing-selector! MKMapItemRequest::getMapItemWithCompletionHandler: not bound
-!missing-selector! MKMapItemRequest::initWithMapItemIdentifier: not bound
-!missing-selector! MKMapItemRequest::isCancelled not bound
-!missing-selector! MKMapItemRequest::isLoading not bound
-!missing-selector! MKMapItemRequest::mapItemIdentifier not bound
-!missing-type! MKAddressFilter not bound
-!missing-type! MKMapItemAnnotation not bound
-!missing-type! MKMapItemDetailSelectionAccessoryPresentationStyle not bound
-!missing-type! MKMapItemDetailViewController not bound
-!missing-type! MKMapItemIdentifier not bound
-!missing-type! MKMapItemRequest not bound
-!missing-type! MKSelectionAccessory not bound
diff --git a/tests/xtro-sharpie/tvOS-MapKit.ignore b/tests/xtro-sharpie/tvOS-MapKit.ignore
index 114c1ab0666a..6af422a70853 100644
--- a/tests/xtro-sharpie/tvOS-MapKit.ignore
+++ b/tests/xtro-sharpie/tvOS-MapKit.ignore
@@ -1,4 +1,3 @@
-!missing-field! MKAnnotationCalloutInfoDidChangeNotification not bound
!missing-protocol-conformance! MKUserLocation should conform to MKAnnotation
!missing-protocol-member! MKOverlay::coordinate not found
diff --git a/tests/xtro-sharpie/tvOS-MapKit.todo b/tests/xtro-sharpie/tvOS-MapKit.todo
deleted file mode 100644
index 98477f58b672..000000000000
--- a/tests/xtro-sharpie/tvOS-MapKit.todo
+++ /dev/null
@@ -1,67 +0,0 @@
-!missing-enum! MKAddressFilterOption not bound
-!missing-enum! MKLocalSearchRegionPriority not bound
-!missing-enum-value! MKLocalSearchCompleterResultType native value MKLocalSearchCompleterResultTypePhysicalFeature = 8 not bound
-!missing-enum-value! MKLocalSearchResultType native value MKLocalSearchResultTypePhysicalFeature = 4 not bound
-!missing-field! MKPointOfInterestCategoryAnimalService not bound
-!missing-field! MKPointOfInterestCategoryAutomotiveRepair not bound
-!missing-field! MKPointOfInterestCategoryBaseball not bound
-!missing-field! MKPointOfInterestCategoryBasketball not bound
-!missing-field! MKPointOfInterestCategoryBeauty not bound
-!missing-field! MKPointOfInterestCategoryBowling not bound
-!missing-field! MKPointOfInterestCategoryCastle not bound
-!missing-field! MKPointOfInterestCategoryConventionCenter not bound
-!missing-field! MKPointOfInterestCategoryDistillery not bound
-!missing-field! MKPointOfInterestCategoryFairground not bound
-!missing-field! MKPointOfInterestCategoryFishing not bound
-!missing-field! MKPointOfInterestCategoryFortress not bound
-!missing-field! MKPointOfInterestCategoryGoKart not bound
-!missing-field! MKPointOfInterestCategoryGolf not bound
-!missing-field! MKPointOfInterestCategoryHiking not bound
-!missing-field! MKPointOfInterestCategoryKayaking not bound
-!missing-field! MKPointOfInterestCategoryLandmark not bound
-!missing-field! MKPointOfInterestCategoryMailbox not bound
-!missing-field! MKPointOfInterestCategoryMiniGolf not bound
-!missing-field! MKPointOfInterestCategoryMusicVenue not bound
-!missing-field! MKPointOfInterestCategoryNationalMonument not bound
-!missing-field! MKPointOfInterestCategoryPlanetarium not bound
-!missing-field! MKPointOfInterestCategoryRockClimbing not bound
-!missing-field! MKPointOfInterestCategoryRVPark not bound
-!missing-field! MKPointOfInterestCategorySkatePark not bound
-!missing-field! MKPointOfInterestCategorySkating not bound
-!missing-field! MKPointOfInterestCategorySkiing not bound
-!missing-field! MKPointOfInterestCategorySoccer not bound
-!missing-field! MKPointOfInterestCategorySpa not bound
-!missing-field! MKPointOfInterestCategorySurfing not bound
-!missing-field! MKPointOfInterestCategorySwimming not bound
-!missing-field! MKPointOfInterestCategoryTennis not bound
-!missing-field! MKPointOfInterestCategoryVolleyball not bound
-!missing-selector! +MKAddressFilter::filterExcludingAll not bound
-!missing-selector! +MKAddressFilter::filterIncludingAll not bound
-!missing-selector! MKAddressFilter::excludesOptions: not bound
-!missing-selector! MKAddressFilter::includesOptions: not bound
-!missing-selector! MKAddressFilter::initExcludingOptions: not bound
-!missing-selector! MKAddressFilter::initIncludingOptions: not bound
-!missing-selector! MKLocalSearchCompleter::addressFilter not bound
-!missing-selector! MKLocalSearchCompleter::regionPriority not bound
-!missing-selector! MKLocalSearchCompleter::setAddressFilter: not bound
-!missing-selector! MKLocalSearchCompleter::setRegionPriority: not bound
-!missing-selector! MKLocalSearchRequest::addressFilter not bound
-!missing-selector! MKLocalSearchRequest::regionPriority not bound
-!missing-selector! MKLocalSearchRequest::setAddressFilter: not bound
-!missing-selector! MKLocalSearchRequest::setRegionPriority: not bound
-!missing-selector! MKMapItem::alternateIdentifiers not bound
-!missing-selector! MKMapItem::identifier not bound
-!missing-selector! MKMapItemAnnotation::initWithMapItem: not bound
-!missing-selector! MKMapItemAnnotation::mapItem not bound
-!missing-selector! MKMapItemIdentifier::identifierString not bound
-!missing-selector! MKMapItemIdentifier::initWithIdentifierString: not bound
-!missing-selector! MKMapItemRequest::cancel not bound
-!missing-selector! MKMapItemRequest::getMapItemWithCompletionHandler: not bound
-!missing-selector! MKMapItemRequest::initWithMapItemIdentifier: not bound
-!missing-selector! MKMapItemRequest::isCancelled not bound
-!missing-selector! MKMapItemRequest::isLoading not bound
-!missing-selector! MKMapItemRequest::mapItemIdentifier not bound
-!missing-type! MKAddressFilter not bound
-!missing-type! MKMapItemAnnotation not bound
-!missing-type! MKMapItemIdentifier not bound
-!missing-type! MKMapItemRequest not bound
diff --git a/tests/xtro-sharpie/watchOS-MapKit.todo b/tests/xtro-sharpie/watchOS-MapKit.todo
new file mode 100644
index 000000000000..5ae11637b26b
--- /dev/null
+++ b/tests/xtro-sharpie/watchOS-MapKit.todo
@@ -0,0 +1 @@
+!unknown-field! MKAnnotationCalloutInfoDidChangeNotification bound