Skip to content

UIKit iOS xcode13.0 beta4

Alex Soto edited this page Sep 13, 2021 · 2 revisions

#UIKit.framework https://github.com/xamarin/xamarin-macios/pull/12706

diff -ruN /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLayoutFragment.h /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLayoutFragment.h
--- /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLayoutFragment.h	2021-07-13 00:42:05.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextLayoutFragment.h	2021-07-22 04:39:01.000000000 -0400
@@ -92,6 +92,13 @@
 #pragma mark Rendering
 // Renders the visual representation of this element in the specified graphics context.
 - (void)drawAtPoint:(CGPoint)point inContext:(CGContextRef)context;
+
+#pragma mark Text attachments
+// Returns NSTextAttachmentViewProvider associated with the receiver. The property contents are only valid with NSTextLayoutFragmentStateLayoutAvailable.
+@property (copy, readonly) NSArray<NSTextAttachmentViewProvider *> *textAttachmentViewProviders;
+
+// Returns the frame in the text layout fragment coordinate system for the attachment at location. It returns CGRectZero if location is not with any attachment or the state is not NSTextLayoutFragmentStateLayoutAvailable.
+- (CGRect)frameForTextAttachmentAtLocation:(id <NSTextLocation>)location;
 @end
 NS_ASSUME_NONNULL_END
 #else
diff -ruN /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIButton.h /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIButton.h
--- /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIButton.h	2021-07-13 00:38:28.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIButton.h	2021-07-22 14:19:57.000000000 -0400
@@ -43,7 +43,7 @@
 
 @class UIButton, UIPointerStyle, UIPointerEffect, UIPointerShape;
 typedef UIPointerStyle *_Nullable(^UIButtonPointerStyleProvider)(UIButton *button, UIPointerEffect *proposedEffect, UIPointerShape *proposedShape) API_AVAILABLE(ios(13.4)) API_UNAVAILABLE(watchos, tvos);
-typedef void (^UIButtonConfigurationUpdateHandler)(__kindof UIButton *button) API_AVAILABLE(ios(15.0), tvos(15.0), watchos(8.0));
+typedef void (^UIButtonConfigurationUpdateHandler)(__kindof UIButton *button) API_AVAILABLE(ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
 
 UIKIT_EXTERN API_AVAILABLE(ios(2.0)) NS_SWIFT_UI_ACTOR
 @interface UIButton : UIControl <NSCoding>
@@ -62,22 +62,22 @@
 + (instancetype)buttonWithType:(UIButtonType)buttonType primaryAction:(nullable UIAction *)primaryAction API_AVAILABLE(ios(14.0));
 
 /// Construct a new UIButton. `configuration` will be installed on the created button, and `primaryAction` added to handle the .primaryActionTriggered control event. If `primaryAction` has a title or image, they will be copied to `configuration`
-+ (instancetype)buttonWithConfiguration:(UIButtonConfiguration *)configuration primaryAction:(nullable UIAction *)primaryAction API_AVAILABLE(ios(15.0), tvos(15.0), watchos(8.0));
++ (instancetype)buttonWithConfiguration:(UIButtonConfiguration *)configuration primaryAction:(nullable UIAction *)primaryAction API_AVAILABLE(ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
 
 /// Setting a non-nil value for `configuration` will opt into configuration-based behavior on UIButton, update the button in a platform specific manner, and enable/disable some API.
-@property (nonatomic, readwrite, copy, nullable) UIButtonConfiguration *configuration API_AVAILABLE(ios(15.0), tvos(15.0), watchos(8.0));
+@property (nonatomic, readwrite, copy, nullable) UIButtonConfiguration *configuration API_AVAILABLE(ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
 
 /// Requests the view update its configuration for its current state. This method is called automatically when the button's state may have changed, as well as in other circumstances where an update may be required. Multiple requests may be coalesced into a single update at the appropriate time.
-- (void)setNeedsUpdateConfiguration API_AVAILABLE(ios(15.0), tvos(15.0), watchos(8.0));
+- (void)setNeedsUpdateConfiguration API_AVAILABLE(ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
 
 /// Subclasses should override this method and update the button's `configuration`. This method should not be called directly, use `setNeedsUpdateConfiguration` to request an update.
-- (void)updateConfiguration API_AVAILABLE(ios(15.0), tvos(15.0), watchos(8.0));
+- (void)updateConfiguration API_AVAILABLE(ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
 
 /// Block-based equivalent to overriding -updateConfiguration in a subclass. Setting this handler will force the button into configuration-based behavior (see the `configuration` property). This block is called after `-updateConfiguration`
-@property (nonatomic, readwrite, copy, nullable) UIButtonConfigurationUpdateHandler configurationUpdateHandler API_AVAILABLE(ios(15.0), tvos(15.0), watchos(8.0));
+@property (nonatomic, readwrite, copy, nullable) UIButtonConfigurationUpdateHandler configurationUpdateHandler API_AVAILABLE(ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
 
 /// When YES, the button will automatically call -updatedConfigurationForButton: on its `configuration ` when the button's state changes, and apply the updated configuration to the button. The default value is YES.
-@property (nonatomic, readwrite, assign) BOOL automaticallyUpdatesConfiguration API_AVAILABLE(ios(15.0), tvos(15.0), watchos(8.0));
+@property (nonatomic, readwrite, assign) BOOL automaticallyUpdatesConfiguration API_AVAILABLE(ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
 
 @property(null_resettable, nonatomic,strong)   UIColor     *tintColor API_AVAILABLE(ios(5.0)); // The tintColor is inherited through the superview hierarchy. See UIView for more information.
 @property(nonatomic,readonly) UIButtonType buttonType;
@@ -151,29 +151,29 @@
 
 @interface UIButton(/*UIButtonDeprecated*/)
 
-@property(nonatomic,strong) UIFont         *font              API_DEPRECATED("", ios(2.0, 3.0)) API_UNAVAILABLE(tvos);
-@property(nonatomic)        NSLineBreakMode lineBreakMode     API_DEPRECATED("", ios(2.0, 3.0)) API_UNAVAILABLE(tvos);
-@property(nonatomic)        CGSize          titleShadowOffset API_DEPRECATED("", ios(2.0, 3.0)) API_UNAVAILABLE(tvos);
+@property(nonatomic,strong) UIFont         *font              API_DEPRECATED("Specify an attributed title with a custom font", ios(2.0, 3.0)) API_UNAVAILABLE(tvos);
+@property(nonatomic)        NSLineBreakMode lineBreakMode     API_DEPRECATED("Specify an attributed title with a customized paragraph style", ios(2.0, 3.0)) API_UNAVAILABLE(tvos);
+@property(nonatomic)        CGSize          titleShadowOffset API_DEPRECATED("Specify an attributed title with a customized shadow style", ios(2.0, 3.0)) API_UNAVAILABLE(tvos);
 
 // The effect of these properties can be replicated via UIButtonConfiguration.contentInset and UIButtonConfiguration.imageToTitlePadding. They are ignored when a configuration is set.
-@property(nonatomic) UIEdgeInsets contentEdgeInsets API_DEPRECATED("", ios(2.0,15.0)) UI_APPEARANCE_SELECTOR; // default is UIEdgeInsetsZero. On tvOS 10 or later, default is nonzero except for custom buttons.
-@property(nonatomic) UIEdgeInsets titleEdgeInsets API_DEPRECATED("", ios(2.0,15.0));                // default is UIEdgeInsetsZero
-@property(nonatomic) UIEdgeInsets imageEdgeInsets API_DEPRECATED("", ios(2.0,15.0));                // default is UIEdgeInsetsZero
+@property(nonatomic) UIEdgeInsets contentEdgeInsets API_DEPRECATED("This property is ignored when using UIButtonConfiguration", ios(2.0,15.0), tvos(2.0,15.0)) UI_APPEARANCE_SELECTOR; // default is UIEdgeInsetsZero. On tvOS 10 or later, default is nonzero except for custom buttons.
+@property(nonatomic) UIEdgeInsets titleEdgeInsets API_DEPRECATED("This property is ignored when using UIButtonConfiguration", ios(2.0,15.0), tvos(2.0,15.0));                // default is UIEdgeInsetsZero
+@property(nonatomic) UIEdgeInsets imageEdgeInsets API_DEPRECATED("This property is ignored when using UIButtonConfiguration", ios(2.0,15.0), tvos(2.0,15.0));                // default is UIEdgeInsetsZero
 
 // The effect of these properties can be replicated by providing an appropriate UIButtonConfiguration. They are ignored when a configuration set.
-@property(nonatomic) BOOL reversesTitleShadowWhenHighlighted API_DEPRECATED("", ios(2.0,15.0)); // default is NO. if YES, shadow reverses to shift between engrave and emboss appearance
-@property(nonatomic) BOOL adjustsImageWhenHighlighted API_DEPRECATED("", ios(2.0,15.0));    // default is YES. if YES, image is drawn darker when highlighted(pressed)
-@property(nonatomic) BOOL adjustsImageWhenDisabled API_DEPRECATED("", ios(2.0,15.0));       // default is YES. if YES, image is drawn lighter when disabled
+@property(nonatomic) BOOL reversesTitleShadowWhenHighlighted API_DEPRECATED("This property is ignored when using UIButtonConfiguration, you may customize to replicate this behavior via a configurationUpdateHandler", ios(2.0,15.0), tvos(2.0,15.0)); // default is NO. if YES, shadow reverses to shift between engrave and emboss appearance
+@property(nonatomic) BOOL adjustsImageWhenHighlighted API_DEPRECATED("This property is ignored when using UIButtonConfiguration, you may customize to replicate this behavior via a configurationUpdateHandler", ios(2.0,15.0), tvos(2.0,15.0));    // default is YES. if YES, image is drawn darker when highlighted(pressed)
+@property(nonatomic) BOOL adjustsImageWhenDisabled API_DEPRECATED("This property is ignored when using UIButtonConfiguration, you may customize to replicate this behavior via a configurationUpdateHandler", ios(2.0,15.0), tvos(2.0,15.0));       // default is YES. if YES, image is drawn lighter when disabled
 
 // These properties are ignored when a configuration is set and have no replacement.
-@property(nonatomic) BOOL showsTouchWhenHighlighted  API_DEPRECATED("", ios(2.0,15.0)) API_UNAVAILABLE(tvos);
+@property(nonatomic) BOOL showsTouchWhenHighlighted  API_DEPRECATED("This property is ignored when using UIButtonConfiguration", ios(2.0,15.0)) API_UNAVAILABLE(tvos);
 
 // These methods will not be called when using a configuration.
 // To change the layout of button content, override -layoutSubviews, call super, and then position views as you see fit.
-- (CGRect)backgroundRectForBounds:(CGRect)bounds API_DEPRECATED("", ios(2.0,15.0));
-- (CGRect)contentRectForBounds:(CGRect)bounds API_DEPRECATED("", ios(2.0,15.0));
-- (CGRect)titleRectForContentRect:(CGRect)contentRect API_DEPRECATED("", ios(2.0,15.0));
-- (CGRect)imageRectForContentRect:(CGRect)contentRect API_DEPRECATED("", ios(2.0,15.0));
+- (CGRect)backgroundRectForBounds:(CGRect)bounds API_DEPRECATED("Override layoutSubviews, call super, and position views as you desire.", ios(2.0,15.0), tvos(2.0,15.0));
+- (CGRect)contentRectForBounds:(CGRect)bounds API_DEPRECATED("Override layoutSubviews, call super, and position views as you desire.", ios(2.0,15.0), tvos(2.0,15.0));
+- (CGRect)titleRectForContentRect:(CGRect)contentRect API_DEPRECATED("Override layoutSubviews, call super, and position views as you desire.", ios(2.0,15.0), tvos(2.0,15.0));
+- (CGRect)imageRectForContentRect:(CGRect)contentRect API_DEPRECATED("Override layoutSubviews, call super, and position views as you desire.", ios(2.0,15.0), tvos(2.0,15.0));
 
 @end
 
diff -ruN /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContextMenuInteraction.h /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContextMenuInteraction.h
--- /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContextMenuInteraction.h	2021-07-13 00:42:01.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContextMenuInteraction.h	2021-07-22 04:38:58.000000000 -0400
@@ -54,7 +54,16 @@
  * @abstract Call to update the currently visible menu. This method does nothing if called before a menu is presented.
  *
  * @param block  Called with a mutable copy of the currently visible menu. Modify and return this menu (or an entirely
- *               new one) to change the currently visible menu items.
+ *               new one) to change the currently visible menu items. Starting in iOS 15, this block is called once for
+ *               every visible submenu. For example, in the following hierarchy:
+ *
+ *               *- Root Menu
+ *                  *- Submenu A
+ *                     *- Submenu B
+ *                  *- Submenu C
+ *
+ *               If Submenu A is visible, the block is called twice (once for the Root Menu and once for Submenu A).
+ *               If both A and B are visible, it's called 3 times (for the Root Menu, A, and B).
  */
 - (void)updateVisibleMenuWithBlock:(UIMenu *(NS_NOESCAPE ^)(UIMenu *visibleMenu))block API_AVAILABLE(ios(14.0));
 
diff -ruN /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFontDescriptor.h /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFontDescriptor.h
--- /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFontDescriptor.h	2021-07-13 00:40:10.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFontDescriptor.h	2021-07-22 14:23:08.000000000 -0400
@@ -149,11 +149,19 @@
 UIKIT_EXTERN const UIFontWeight UIFontWeightBlack API_AVAILABLE(ios(8.2));
 
 // Font feature keys
+#if __swift__
+// Allows for better FeatureKey names for Swift clients
+UIKIT_EXTERN UIFontDescriptorFeatureKey const UIFontFeatureTypeIdentifierKey NS_SWIFT_NAME(UIFontDescriptorFeatureKey.typeIdentifier) API_DEPRECATED_WITH_REPLACEMENT("UIFontDescriptor.FeatureKey.type", ios(7.0, 15.0));
+UIKIT_EXTERN UIFontDescriptorFeatureKey const UIFontFeatureSelectorIdentifierKey NS_SWIFT_NAME(UIFontDescriptorFeatureKey.featureIdentifier) API_DEPRECATED_WITH_REPLACEMENT("UIFontDescriptor.FeatureKey.selector", ios(7.0, 15.0));
+UIKIT_EXTERN UIFontDescriptorFeatureKey const UIFontFeatureTypeIdentifierKey_ForNewSwiftAPI NS_SWIFT_NAME(UIFontDescriptorFeatureKey.type) API_AVAILABLE(ios(15.0));
+UIKIT_EXTERN UIFontDescriptorFeatureKey const UIFontFeatureSelectorIdentifierKey_ForNewSwiftAPI NS_SWIFT_NAME(UIFontDescriptorFeatureKey.selector) API_AVAILABLE(ios(15.0));
+#else
 // A number object specifying font feature type such as ligature, character shape, etc.
 UIKIT_EXTERN UIFontDescriptorFeatureKey const UIFontFeatureTypeIdentifierKey API_AVAILABLE(ios(7.0));
 
 // A number object specifying font feature selector such as common ligature off, traditional character shape, etc.
 UIKIT_EXTERN UIFontDescriptorFeatureKey const UIFontFeatureSelectorIdentifierKey API_AVAILABLE(ios(7.0));
+#endif
 
 // Font text styles, semantic descriptions of the intended use for a font returned by +[UIFont preferredFontForTextStyle:]
 UIKIT_EXTERN UIFontTextStyle const UIFontTextStyleLargeTitle API_AVAILABLE(ios(11.0), watchos(5.0)) API_UNAVAILABLE(tvos);
diff -ruN /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIImage.h /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIImage.h
--- /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIImage.h	2021-07-13 00:40:09.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIImage.h	2021-07-23 13:32:43.000000000 -0400
@@ -305,26 +305,26 @@
 @end
 
 
-@interface UIImage (ImageVariant)
+@interface UIImage (UIImageVariant)
 
 /// Get a system symbol with a certain variant.
-+ (nullable UIImage *)systemImageNamed:(NSString *)name variant:(UIImageVariant)variant API_AVAILABLE(ios(15.0));
++ (nullable UIImage *)systemImageNamed:(NSString *)name variant:(UIImageVariant)variant API_AVAILABLE(ios(15.0),tvos(15.0),watchos(8.0));
 /// Get a system symbol with a certain variant with a specific configuration.
-+ (nullable UIImage *)systemImageNamed:(NSString *)name variant:(UIImageVariant)variant withConfiguration:(nullable UIImageConfiguration *)configuration API_AVAILABLE(ios(15.0));
++ (nullable UIImage *)systemImageNamed:(NSString *)name variant:(UIImageVariant)variant withConfiguration:(nullable UIImageConfiguration *)configuration API_AVAILABLE(ios(15.0),tvos(15.0),watchos(8.0));
 
 /// Get a custom image with a certain variant.
-+ (nullable UIImage *)imageNamed:(NSString *)name variant:(UIImageVariant)variant API_AVAILABLE(ios(15.0));
++ (nullable UIImage *)imageNamed:(NSString *)name variant:(UIImageVariant)variant API_AVAILABLE(ios(15.0),tvos(15.0),watchos(8.0));
 /// Get a custom image with a certain variant with a specific configuration.
-+ (nullable UIImage *)imageNamed:(NSString *)name variant:(UIImageVariant)variant withConfiguration:(nullable UIImageConfiguration *)configuration API_AVAILABLE(ios(15.0));
++ (nullable UIImage *)imageNamed:(NSString *)name variant:(UIImageVariant)variant withConfiguration:(nullable UIImageConfiguration *)configuration API_AVAILABLE(ios(15.0),tvos(15.0),watchos(8.0));
 
 /// Get an image with a variant.
-- (nullable UIImage *)imageByApplyingVariant:(UIImageVariant)variant API_AVAILABLE(ios(15.0));
+- (nullable UIImage *)imageByApplyingVariant:(UIImageVariant)variant API_AVAILABLE(ios(15.0),tvos(15.0),watchos(8.0));
 
 /// Get an image with a variant the same as another (variant) image.
-- (nullable UIImage *)imageByApplyingVariantFromImage:(UIImage *)image API_AVAILABLE(ios(15.0));
+- (nullable UIImage *)imageByApplyingVariantFromImage:(UIImage *)image API_AVAILABLE(ios(15.0),tvos(15.0),watchos(8.0));
 
 /// Remove all variants from a (variant) image.
-- (nullable UIImage *)imageByRemovingVariant API_AVAILABLE(ios(15.0));
+- (nullable UIImage *)imageByRemovingVariant API_AVAILABLE(ios(15.0),tvos(15.0),watchos(8.0));
 
 @end
 
diff -ruN /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.apinotes /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.apinotes
--- /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.apinotes	2021-07-07 04:20:24.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.apinotes	2021-07-18 18:45:47.000000000 -0400
@@ -1877,8 +1877,12 @@
 - Name: UIFontSlantTrait
   SwiftName: slant
 - Name: UIFontFeatureTypeIdentifierKey
-  SwiftName: type
+  SwiftName: featureIdentifier
 - Name: UIFontFeatureSelectorIdentifierKey
+  SwiftName: typeIdentifier
+- Name: UIFontFeatureTypeKey
+  SwiftName: type
+- Name: UIFontFeatureSelectorKey
   SwiftName: selector
 - Name: UIFontWeightUltraLight
   SwiftName: ultraLight
diff -ruN /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationBar.h /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationBar.h
--- /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationBar.h	2021-07-13 00:38:29.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UINavigationBar.h	2021-07-22 04:38:57.000000000 -0400
@@ -126,7 +126,7 @@
 /// Describes the appearance attributes for the navigation bar to use when an associated UIScrollView has reached the edge abutting the bar (the top edge for the navigation bar). If not set, a modified standardAppearance will be used instead.
 @property (nonatomic, readwrite, copy, nullable) UINavigationBarAppearance *scrollEdgeAppearance UI_APPEARANCE_SELECTOR API_AVAILABLE(ios(13.0));
 /// Describes the appearance attributes for the navigation bar to use when it is displayed with its compact heights, and an associated UIScrollView has reached the edge abutting the bar. If not set, first the scrollEdgeAppearance will be tried, and if that is nil then compactAppearance followed by a modified standardAppearance.
-@property(nonatomic,readwrite, copy, nullable) UINavigationBarAppearance *compactScrollEdgeAppearance;
+@property(nonatomic,readwrite, copy, nullable) UINavigationBarAppearance *compactScrollEdgeAppearance UI_APPEARANCE_SELECTOR API_AVAILABLE(ios(15.0));
 @end
 
 NS_SWIFT_UI_ACTOR
diff -ruN /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISheetPresentationController.h /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISheetPresentationController.h
--- /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISheetPresentationController.h	2021-07-13 00:38:42.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISheetPresentationController.h	2021-07-22 14:20:10.000000000 -0400
@@ -96,7 +96,6 @@
 // The identifier of the largest detent that is not dimmed. When nil or the identifier is not found in detents, all detents are dimmed.
 // Default: nil
 @property (nonatomic, copy, nullable) UISheetPresentationControllerDetentIdentifier largestUndimmedDetentIdentifier;
-@property (nonatomic, copy, nullable) UISheetPresentationControllerDetentIdentifier smallestUndimmedDetentIdentifier API_DEPRECATED_WITH_REPLACEMENT("largestUndimmedDetentIdentifier", ios(15.0, 15.0));
 
 // If there is a larger detent to expand to than the selected detent, and a descendent scroll view is scrolled to top, this controls whether scrolling down will expand to a larger detent.
 // Useful to set to NO for non-modal sheets, where scrolling in the sheet should not expand the sheet and obscure the content above.
diff -ruN /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextField.h /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextField.h
--- /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextField.h	2021-07-13 00:34:26.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextField.h	2021-07-22 14:23:06.000000000 -0400
@@ -98,7 +98,7 @@
 - (CGRect)leftViewRectForBounds:(CGRect)bounds;
 - (CGRect)rightViewRectForBounds:(CGRect)bounds;
 
-- (void)drawTextInRect:(CGRect)rect;
+- (void)drawTextInRect:(CGRect)rect API_DEPRECATED("This method is no longer called.", ios(2.0, 15.0));
 - (void)drawPlaceholderInRect:(CGRect)rect;
 
 // Presented when object becomes first responder.  If set to nil, reverts to following responder chain.  If
diff -ruN /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h
--- /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h	2021-07-13 00:36:55.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h	2021-07-22 14:23:04.000000000 -0400
@@ -16,7 +16,6 @@
 #import <UIKit/NSLayoutConstraint.h>
 #import <UIKit/UITraitCollection.h>
 #import <UIKit/UIFocus.h>
-#import <UIKit/UIImageVariants.h>
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -714,24 +713,6 @@
 
 @end
 
-
-@interface UIView (ImageVariant)
-
-/// Set the image variant shape and/or fill for this view and its descendants. These values
-/// will apply to the whole view hierarchy below this view too. Views can read these values
-/// to adapt their behavior. UIImageView will pick them up and display the right variant
-/// if it exists. These will reflect any values set by superviews (i.e. if a view doesn't have
-/// a variant set but the superview does, it won't return .none but the value set by
-/// the superview).
-@property (nonatomic) UIImageVariant preferredImageVariant API_AVAILABLE(ios(15.0)) NS_REFINED_FOR_SWIFT;
-
-/// Called when one the preferred image variant settings has changed (similar to tintColorDidChange()).
-/// Like tintColorDidChange(), subviews (and their subviews) will receive this also when the settings
-/// change on a parent view.
-- (void)preferredImageVariantDidChange API_AVAILABLE(ios(15.0));
-
-@end
-
 NS_ASSUME_NONNULL_END
 
 #else
diff -ruN /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h
--- /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h	2021-07-13 00:38:47.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h	2021-07-22 14:20:14.000000000 -0400
@@ -201,8 +201,7 @@
 @property (nonatomic) BOOL restoresFocusAfterTransition API_AVAILABLE(ios(10.0));
 
 /// The identifier of the focus group that this view controller belongs to. If this is nil, the view controller inherits the focus group of its parent focus environment.
-/// @warning despite its annotation, this property is only available on iOS 15 and later.
-@property (nonatomic, readwrite, nullable, copy) NSString *focusGroupIdentifier API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(tvos, watchos);
+@property (nonatomic, readwrite, nullable, copy) NSString *focusGroupIdentifier API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(tvos, watchos);
 
 /*
   These four methods can be used in a view controller's appearance callbacks to determine if it is being
Clone this wiki locally