Skip to content

UIKit iOS xcode13.0 beta3

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-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextAttachment.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextAttachment.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextAttachment.h	2021-06-22 17:34:30.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/NSTextAttachment.h	2021-07-13 00:36:59.000000000 -0400
@@ -3,10 +3,9 @@
 //  NSTextAttachment.h
 //  UIKit
 //
-//  Copyright (c) 2011-2018, Apple Inc. All rights reserved.
+//  Copyright (c) 2011-2021, Apple Inc. All rights reserved.
 //
 
-#import <Foundation/NSObject.h>
 #import <Foundation/NSAttributedString.h>
 #import <UIKit/UIKitDefines.h>
 #import <CoreGraphics/CGGeometry.h>
@@ -14,55 +13,67 @@
 NS_ASSUME_NONNULL_BEGIN
 
 enum {
-    NSAttachmentCharacter API_AVAILABLE(macos(10.0), ios(7.0)) = 0xFFFC // Replacement character is used for attachments
+    NSAttachmentCharacter API_AVAILABLE(macos(10.0), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos) = 0xFFFC // Replacement character is used for attachments
 };
 
 @class NSTextContainer;
 @class NSLayoutManager;
-@class NSFileWrapper;
 @class UIImage;
+@class UIView;
+@class NSFileWrapper;
+@class NSTextAttachmentViewProvider;
+@class NSTextLayoutManager;
+@protocol NSTextLocation;
 
 
 // This protocol defines the interface to attachment objects from NSLayoutManager
 @protocol NSTextAttachmentContainer <NSObject>
-#if __OBJC2__
 // This protocol is available only for Objective-C 2 or later architecture
 
 // Returns the image object rendered by NSLayoutManager at imageBounds inside textContainer.  It should return an image appropriate for the target rendering context derived by arguments to this method.  The NSTextAttachment implementation returns -image when non-nil.  If -image==nil, it returns an image based on -contents and -fileType properties.
-- (nullable UIImage *)imageForBounds:(CGRect)imageBounds textContainer:(nullable NSTextContainer *)textContainer characterIndex:(NSUInteger)charIndex  API_AVAILABLE(macos(10.11), ios(7.0));
+- (nullable UIImage *)imageForBounds:(CGRect)imageBounds textContainer:(nullable NSTextContainer *)textContainer characterIndex:(NSUInteger)charIndex  API_AVAILABLE(macos(10.11), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
 
 
 // Returns the layout bounds to the layout manager.  The bounds origin is interpreted to match position inside lineFrag.  The NSTextAttachment implementation returns -bounds if not CGRectZero; otherwise, it derives the bounds value from -[image size].  Conforming objects can implement more sophisticated logic for negotiating the frame size based on the available container space and proposed line fragment rect.
-- (CGRect)attachmentBoundsForTextContainer:(nullable NSTextContainer *)textContainer proposedLineFragment:(CGRect)lineFrag glyphPosition:(CGPoint)position characterIndex:(NSUInteger)charIndex API_AVAILABLE(macos(10.11), ios(7.0));
+- (CGRect)attachmentBoundsForTextContainer:(nullable NSTextContainer *)textContainer proposedLineFragment:(CGRect)lineFrag glyphPosition:(CGPoint)position characterIndex:(NSUInteger)charIndex API_AVAILABLE(macos(10.11), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
 
-#endif
 @end
 
-UIKIT_EXTERN API_AVAILABLE(macos(10.0), ios(7.0))
-@interface NSTextAttachment : NSObject <NSTextAttachmentContainer, NSSecureCoding>
+// This protocol defines the interface to attachment objects from NSTextLayoutManager
+@protocol NSTextAttachmentLayout <NSObject>
+
+// Returns the image object rendered at bounds inside textContainer.  It should return an image appropriate for the target rendering context derived by arguments to this method.  The NSTextAttachment implementation returns -image when non-nil.  If -image==nil, it returns an image based on -contents and -fileType properties.
+- (nullable UIImage *)imageForBounds:(CGRect)bounds attributes:(NSDictionary<NSAttributedStringKey, id> *)attributes location:(id <NSTextLocation>)location textContainer:(nullable NSTextContainer *)textContainer API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
+
+// Returns the layout bounds. The bounds origin is interpreted to match position inside proposedLineFragment. The NSTextAttachment implementation returns -bounds if not CGRectZero; otherwise, it derives the bounds value from image.size. Conforming objects can implement more sophisticated logic for negotiating the frame size based on the available container space and proposed line fragment rect.
+- (CGRect)attachmentBoundsForAttributes:(NSDictionary<NSAttributedStringKey, id> *)attributes location:(id <NSTextLocation>)location textContainer:(nullable NSTextContainer *)textContainer proposedLineFragment:(CGRect)proposedLineFragment position:(CGPoint)position API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
+
+// Returns the text attachment view provider corresponding to -fileType. The default implementation queries the text attachment view provider class via +[NSTextAttachment textAttachmentViewProviderClassForFileType:]. When non-nil, it instantiates a view, then, fills properties declared in NSTextAttachmentViewProvider if implemented
+- (nullable NSTextAttachmentViewProvider *)viewProviderForParentView:(nullable UIView *)parentView location:(id <NSTextLocation>)location textContainer:(nullable NSTextContainer *)textContainer API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
+@end
+
+API_AVAILABLE(macos(10.0), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos) @interface NSTextAttachment : NSObject <NSTextAttachmentLayout, NSTextAttachmentContainer, NSSecureCoding>
 
 /**************************** Initialization ****************************/
 
 // Designated initializer.  Both arguments can be nil.  When contentData==nil || uti==nil, the receiver is consider to be an attachment without document contents.  In this case, the NSAttributedString methods writing external file format tries to save the return value of -[NSTextAttachment image] instead.
-- (instancetype)initWithData:(nullable NSData *)contentData ofType:(nullable NSString *)uti NS_DESIGNATED_INITIALIZER API_AVAILABLE(macos(10.11), ios(7.0));
+- (instancetype)initWithData:(nullable NSData *)contentData ofType:(nullable NSString *)uti NS_DESIGNATED_INITIALIZER API_AVAILABLE(macos(10.11), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
 
 
 
-#if __OBJC2__
 /**************************** Content properties ****************************/
 
 // These two properties define the contents for the text attachment.  Modifying these properties have a side effect of invalidating -image and -fileWrapper properties. -fileType is an UTI describing the format for -contents.
-@property (nullable, copy, NS_NONATOMIC_IOSONLY) NSData *contents API_AVAILABLE(macos(10.11), ios(7.0));
-@property (nullable, copy, NS_NONATOMIC_IOSONLY) NSString *fileType API_AVAILABLE(macos(10.11), ios(7.0));
+@property (nullable, copy, NS_NONATOMIC_IOSONLY) NSData *contents API_AVAILABLE(macos(10.11), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nullable, copy, NS_NONATOMIC_IOSONLY) NSString *fileType API_AVAILABLE(macos(10.11), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
 
 /**************************** Rendering/layout properties ****************************/
 
 // Image representing the text attachment contents. Modifying this property invalidates -contents, -fileType, and -FileWrapper properties.
-@property (nullable, strong, NS_NONATOMIC_IOSONLY) UIImage *image API_AVAILABLE(macos(10.11), ios(7.0));
+@property (nullable, strong, NS_NONATOMIC_IOSONLY) UIImage *image API_AVAILABLE(macos(10.11), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
 
 // Defines the layout bounds of the receiver's graphical representation in the text coordinate system.  The origin is at the glyph location on the text baseline.  The default value is CGRectZero.
-@property (NS_NONATOMIC_IOSONLY) CGRect bounds API_AVAILABLE(macos(10.11), ios(7.0));
-#endif
+@property (NS_NONATOMIC_IOSONLY) CGRect bounds API_AVAILABLE(macos(10.11), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
 
 /**************************** Non-image contents properties ****************************/
 
@@ -70,13 +81,53 @@
 @property (nullable, strong, NS_NONATOMIC_IOSONLY) NSFileWrapper *fileWrapper;
 
 
+#pragma mark Advanced Layout Properties
+// Layout padding before and after the text attachment bounds. The layout and rendering bounds X origin gets inset by the padding value. This affects the relationship between the text attachment bounds. 0.0 by default
+@property CGFloat lineLayoutPadding API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
+
+
+#pragma mark View-based attachments
+// Factory methods for defining the mapping between UTI and text attachment view provider class
++ (nullable Class)textAttachmentViewProviderClassForFileType:(NSString *)fileType API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
++ (void)registerTextAttachmentViewProviderClass:(Class)textAttachmentViewProviderClass forFileType:(NSString *)fileType API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
+
+// When YES, the text attachment tries to use a text attachment view returned by -viewProviderForParentView:location:textContainer:. YES by default
+@property BOOL allowsTextAttachmentView API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
+
+// Returns YES if the text attachment is configured to use text attachment views. By default, it checks -allowsTextAttachmentView, +textAttachmentViewClassForFileType:, and its contents
+@property (readonly) BOOL usesTextAttachmentView API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos);
 @end
 
 @interface NSAttributedString (NSAttributedStringAttachmentConveniences)
 // A convenience method for creating an attributed string containing attachment using NSAttachmentCharacter as the base character.
-+ (NSAttributedString *)attributedStringWithAttachment:(NSTextAttachment *)attachment API_AVAILABLE(macos(10.0), ios(7.0));
++ (NSAttributedString *)attributedStringWithAttachment:(NSTextAttachment *)attachment API_AVAILABLE(macos(10.0), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
 @end
 
+API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos)
+@interface NSTextAttachmentViewProvider : NSObject
+- (instancetype)initWithTextAttachment:(NSTextAttachment *)textAttachment parentView:(nullable UIView *)parentView textLayoutManager:(nullable NSTextLayoutManager *)textLayoutManager location:(id <NSTextLocation>)location NS_DESIGNATED_INITIALIZER;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@property (readonly, weak) NSTextAttachment *textAttachment;
+@property (readonly, weak, nullable) NSTextLayoutManager *textLayoutManager;
+
+@property (readonly, strong) id <NSTextLocation> location;
+
+// View instantiation
+// The getter first invokes loadView if the view hasn't been set yet. Subclasses must call super if they override the setter or getter.
+@property(nullable, strong) UIView *view;
+
+// This is where subclasses should create their custom view hierarchy. Should never be called directly.
+- (void)loadView;
+
+// This property determines the text attachment bounds policy. If YES, -[NSTextAttachment attachmentBoundsForAttributes:location:textContainer:proposedLineFragment:position:] consults the text attachment view provider for determining the bounds instead of using -bounds. NO by default
+@property BOOL tracksTextAttachmentViewBounds;
+
+// Invoked from -[NSTextAttachment attachmentBoundsForAttributes:location:textContainer:proposedLineFragment:position:]
+- (CGRect)attachmentBoundsForAttributes:(NSDictionary<NSAttributedStringKey, id> *)attributes location:(id <NSTextLocation>)location textContainer:(nullable NSTextContainer *)textContainer proposedLineFragment:(CGRect)proposedLineFragment position:(CGPoint)position;
+@end
 
 NS_ASSUME_NONNULL_END
 
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibility.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibility.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibility.h	2021-06-22 17:34:27.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibility.h	2021-07-13 00:42:07.000000000 -0400
@@ -493,7 +493,7 @@
 
 // Returns whether the system preference for Differentiate without Color is enabled.
 UIKIT_EXTERN BOOL UIAccessibilityShouldDifferentiateWithoutColor(void) API_AVAILABLE(ios(13.0), tvos(13.0));
-UIKIT_EXTERN NSString *const UIAccessibilityShouldDifferentiateWithoutColorDidChangeNotification API_AVAILABLE(ios(13.0), tvos(13.0));
+UIKIT_EXTERN NSNotificationName const UIAccessibilityShouldDifferentiateWithoutColorDidChangeNotification API_AVAILABLE(ios(13.0), tvos(13.0));
 
 // Returns whether the system preference for On/Off labels is enabled.
 UIKIT_EXTERN BOOL UIAccessibilityIsOnOffSwitchLabelsEnabled(void) API_AVAILABLE(ios(13.0));
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIActivityItemsConfigurationReading.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIActivityItemsConfigurationReading.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIActivityItemsConfigurationReading.h	2021-06-22 17:37:27.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIActivityItemsConfigurationReading.h	2021-07-13 00:42:08.000000000 -0400
@@ -18,6 +18,7 @@
 
 UIKIT_EXTERN UIActivityItemsConfigurationMetadataKey const UIActivityItemsConfigurationMetadataKeyTitle API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(watchos) API_UNAVAILABLE(tvos); // NSString or NSAttributedString - title
 UIKIT_EXTERN UIActivityItemsConfigurationMetadataKey const UIActivityItemsConfigurationMetadataKeyMessageBody API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(watchos) API_UNAVAILABLE(tvos); // NSString or NSAttributedString - message body
+UIKIT_EXTERN UIActivityItemsConfigurationMetadataKey const UIActivityItemsConfigurationMetadataKeyLinkPresentationMetadata API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(watchos) API_UNAVAILABLE(tvos); // LPLinkMetadata
 
 
 typedef NSString * UIActivityItemsConfigurationPreviewIntent NS_TYPED_EXTENSIBLE_ENUM API_AVAILABLE(ios(13.0)) API_UNAVAILABLE(watchos) API_UNAVAILABLE(tvos);
diff -ruN /Applications/Xcode_13.0.0-beta2.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
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIButton.h	2021-06-17 14:35:17.000000000 -0400
+++ /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
@@ -79,9 +79,6 @@
 /// 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));
 
-/// Calculates an ideal size for the button if the given `configuration` were set. If `maximumWidth` is greater than 0, then that width is used to limit the button's width for the purposes of line wrapping, the ideal width may still be wider than `maximumWidth` if line wrapping is disabled or other features require a larger width. Clients may override this method to alter how UIButton calculates its size when using a configuration.
-- (CGSize)preferredSizeForConfiguration:(UIButtonConfiguration *)configuration maximumWidth:(CGFloat)maximumWidth API_AVAILABLE(ios(15.0), tvos(15.0), watchos(8.0));
-
 @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;
 
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UICollectionView.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UICollectionView.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UICollectionView.h	2021-06-17 14:35:26.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UICollectionView.h	2021-07-13 00:34:29.000000000 -0400
@@ -144,7 +144,7 @@
 - (nullable NSIndexPath *)indexPathForPreferredFocusedViewInCollectionView:(UICollectionView *)collectionView API_AVAILABLE(ios(9.0));
 
 /// Determines if the item at the specified index path should also become selected when focus moves to it.
-/// If the collection view's global selectionFollowsFocus is enabled but this delegate returns NO, focus will still move to the cell upon selection, but the cell will no longer become selected when focus moves to it.
+/// If the collection view's global selectionFollowsFocus is enabled, this method will allow you to override that behavior on a per-index path basis. This method is not called if selectionFollowsFocus is disabled.
 - (BOOL)collectionView:(UICollectionView *)collectionView selectionFollowsFocusForItemAtIndexPath:(NSIndexPath *)indexPath API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(watchos, tvos);
 
 - (NSIndexPath *)collectionView:(UICollectionView *)collectionView targetIndexPathForMoveOfItemFromOriginalIndexPath:(NSIndexPath *)originalIndexPath atCurrentIndexPath:(NSIndexPath *)currentIndexPath toProposedIndexPath:(NSIndexPath *)proposedIndexPath API_AVAILABLE(ios(15.0), tvos(15.0), watchos(8.0));
@@ -391,7 +391,8 @@
 // Support for Focus
 @property (nonatomic) BOOL remembersLastFocusedIndexPath API_AVAILABLE(ios(9.0)); // defaults to NO. If YES, when focusing on a collection view the last focused index path is focused automatically. If the collection view has never been focused, then the preferred focused index path is used.
 
-// When enabled, the collection view ensures that selection is automatically triggered when focus moves to a cell.
+/// When enabled, the collection view ensures that selection is automatically triggered when focus moves to a cell.
+/// Defaults to a system derived value based on platform and other properties of the collection view.
 @property (nonatomic) BOOL selectionFollowsFocus API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(watchos, tvos);
 
 /// Determines if the collection view allows its cells to become focused.
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIColor.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIColor.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIColor.h	2021-06-17 03:46:33.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIColor.h	2021-07-13 00:42:13.000000000 -0400
@@ -104,7 +104,7 @@
 
 @interface UIColor (UIColorNamedColors)
 + (nullable UIColor *)colorNamed:(NSString *)name API_AVAILABLE(ios(11.0));      // load from main bundle
-+ (nullable UIColor *)colorNamed:(NSString *)name inBundle:(nullable NSBundle *)bundle compatibleWithTraitCollection:(nullable UITraitCollection *)traitCollection API_AVAILABLE(ios(11.0));
++ (nullable UIColor *)colorNamed:(NSString *)name inBundle:(nullable NSBundle *)bundle compatibleWithTraitCollection:(nullable UITraitCollection *)traitCollection API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos);
 @end
 
 @interface UIColor (DynamicColors)
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIControl.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIControl.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIControl.h	2021-06-17 03:46:39.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIControl.h	2021-07-10 09:49:19.000000000 -0400
@@ -139,9 +139,9 @@
 - (CGPoint)menuAttachmentPointForConfiguration:(UIContextMenuConfiguration *)configuration API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(watchos, tvos);
 
 /// Assigning a value to this property causes the tool tip to be displayed for the view. Setting the property to nil cancels the display of the tool tip for the view.
-@property (nonatomic, copy, nullable) NSString *toolTip API_AVAILABLE(ios(15.0));
+@property (nonatomic, copy, nullable) NSString *toolTip API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(watchos, tvos);
 /// Returns the control's default UIToolTipInteraction.
-@property (nonatomic, readonly, strong, nullable) UIToolTipInteraction *toolTipInteraction API_AVAILABLE(ios(15.0));
+@property (nonatomic, readonly, strong, nullable) UIToolTipInteraction *toolTipInteraction API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(watchos, tvos);
 
 @end
 
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDeferredMenuElement.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDeferredMenuElement.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDeferredMenuElement.h	2021-06-22 17:37:35.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDeferredMenuElement.h	2021-07-13 00:42:20.000000000 -0400
@@ -24,6 +24,17 @@
  */
 + (instancetype)elementWithProvider:(void(^)(void(^completion)(NSArray<UIMenuElement *> *elements)))elementProvider;
 
+/*!
+ * @abstract Returns a placeholder menu element that is replaced with the result of the block's
+ *           completion handler. A loading UI takes the place of the element in the menu
+ *           until it is fulfilled. Elements created using this initializer are "uncached",
+ *           so their @c elementProvider block is called every time the element is displayed.
+ *
+ * @param elementProvider  Called by the system to request the deferred menu items when the containing menu is presented.
+ *                         Call this block's completion handler when the menu items are available.
+ */
++ (instancetype)elementWithUncachedProvider:(void(^)(void(^completion)(NSArray<UIMenuElement *> *elements)))elementProvider API_AVAILABLE(ios(15.0));
+
 @end
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDiffableDataSource.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDiffableDataSource.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDiffableDataSource.h	2021-06-17 03:46:39.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDiffableDataSource.h	2021-07-13 00:34:36.000000000 -0400
@@ -38,6 +38,10 @@
 @property(nonatomic,readonly) NSArray<SectionIdentifierType> *sectionIdentifiers;
 @property(nonatomic,readonly) NSArray<ItemIdentifierType> *itemIdentifiers;
 
+@property(nonatomic,readonly) NSArray<SectionIdentifierType> *reloadedSectionIdentifiers API_AVAILABLE(ios(15.0), tvos(15.0));
+@property(nonatomic,readonly) NSArray<ItemIdentifierType> *reloadedItemIdentifiers API_AVAILABLE(ios(15.0), tvos(15.0));
+@property(nonatomic,readonly) NSArray<ItemIdentifierType> *reconfiguredItemIdentifiers API_AVAILABLE(ios(15.0), tvos(15.0));
+
 - (NSInteger)numberOfItemsInSection:(SectionIdentifierType)sectionIdentifier;
 - (NSArray<ItemIdentifierType>*)itemIdentifiersInSectionWithIdentifier:(SectionIdentifierType)sectionIdentifier;
 - (nullable SectionIdentifierType)sectionIdentifierForSectionContainingItemIdentifier:(ItemIdentifierType)itemIdentifier;
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocus.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocus.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocus.h	2021-06-17 03:44:01.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocus.h	2021-07-13 00:38:29.000000000 -0400
@@ -31,10 +31,10 @@
 /// These are focus group priorities that the system uses and that clients can use to make an item
 /// more or less important than these system states. Any priority below 0 will be ignored.
 typedef NSInteger UIFocusGroupPriority NS_TYPED_EXTENSIBLE_ENUM;
-extern UIFocusGroupPriority const UIFocusGroupPriorityIgnored API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(tvos, watchos);
-extern UIFocusGroupPriority const UIFocusGroupPriorityPreviouslyFocused API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(tvos, watchos);
-extern UIFocusGroupPriority const UIFocusGroupPriorityPrioritized API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(tvos, watchos);
-extern UIFocusGroupPriority const UIFocusGroupPriorityCurrentlyFocused API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(tvos, watchos);
+static const UIFocusGroupPriority UIFocusGroupPriorityIgnored API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(tvos, watchos) = 0;
+static const UIFocusGroupPriority UIFocusGroupPriorityPreviouslyFocused API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(tvos, watchos) = 1000;
+static const UIFocusGroupPriority UIFocusGroupPriorityPrioritized API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(tvos, watchos) = 2000;
+static const UIFocusGroupPriority UIFocusGroupPriorityCurrentlyFocused API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(tvos, watchos) = NSIntegerMax;
 
 NS_ASSUME_NONNULL_BEGIN
 
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFoundation.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFoundation.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFoundation.h	2021-06-17 01:29:53.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFoundation.h	2021-07-09 23:02:28.000000000 -0400
@@ -1,4 +1,3 @@
-#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIFoundation/UIFoundation.h>)
 //
 //  UIFoundation.h
 //  Text Kit
@@ -6,15 +5,12 @@
 //  Copyright © 2021 Apple Inc. All rights reserved.
 //
 
+#import <UIKit/NSTextRange.h>
+#import <UIKit/NSTextSelection.h>
+#import <UIKit/NSTextSelectionNavigation.h>
+#import <UIKit/NSTextViewportLayoutController.h>
 #import <UIKit/NSTextContentManager.h>
 #import <UIKit/NSTextElement.h>
 #import <UIKit/NSTextLayoutFragment.h>
 #import <UIKit/NSTextLayoutManager.h>
 #import <UIKit/NSTextLineFragment.h>
-#import <UIKit/NSTextRange.h>
-#import <UIKit/NSTextSelection.h>
-#import <UIKit/NSTextSelectionNavigation.h>
-#import <UIKit/NSTextViewportLayoutController.h>
-#else
-#import <UIFoundation/UIFoundation.h>
-#endif
diff -ruN /Applications/Xcode_13.0.0-beta2.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
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.apinotes	2021-06-17 01:29:22.000000000 -0400
+++ /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
@@ -7,6 +7,11 @@
 ---
 Name: UIKit
 Classes:
+- Name: NSTextAttachmentViewProvider
+  Methods:
+  - Selector: "attachmentBoundsForAttributes:location:textContainer:proposedLineFragment:position:"
+    MethodKind: Instance
+    SwiftName: attachmentBounds(for:location:textContainer:proposedLineFragment:position:)
 - Name: NSTextContentStorage
   Methods:
   - Selector: "locationFromLocation:withOffset:"
@@ -50,7 +55,7 @@
     SwiftName: init(_:affinity:)
   - Selector: "initWithRange:affinity:granularity:"
     MethodKind: Instance
-    SwiftName: init(_:affinity:granularity:)
+    SwiftName: init(range:affinity:granularity:)
   - Selector: "initWithRanges:affinity:granularity:"
     MethodKind: Instance
     SwiftName: init(_:affinity:granularity:)
@@ -502,9 +507,6 @@
   - Selector: 'buttonWithConfiguration:primaryAction:'
     MethodKind: Class
     SwiftPrivate: true
-  - Selector: 'preferredSizeForConfiguration:maximumWidth:'
-    MethodKind: Instance
-    SwiftPrivate: true
   Properties:
   - Name: 'configuration'
     PropertyKind: Instance
@@ -795,6 +797,10 @@
   - Selector: 'initWithTypeIdentifiersForAcceptingClass:'
     MethodKind: Instance
     SwiftName: 'init(forAccepting:)'
+- Name: UIToolTipConfiguration
+  Properties:
+  - Name: sourceRect
+    SwiftPrivate: true
 - Name: UIFocusSystem
   Methods:
   - Selector: 'environment:containsEnvironment:'
@@ -864,6 +870,9 @@
   - Selector: 'elementWithProvider:'
     SwiftName: 'init(_:)'
     MethodKind: Class
+  - Selector: 'elementWithUncachedProvider:'
+    SwiftName: 'uncached(_:)'
+    MethodKind: Class
 - Name: UIBandSelectionInteraction
   Methods:
   - Selector: 'initWithSelectionHandler:'
@@ -901,6 +910,17 @@
     PropertyKind: Instance
     SwiftPrivate: true
 Protocols:
+- Name: NSTextAttachmentLayout
+  Methods:
+  - Selector: "attachmentBoundsForAttributes:location:textContainer:proposedLineFragment:position:"
+    MethodKind: Instance
+    SwiftName: attachmentBounds(for:location:textContainer:proposedLineFragment:position:)
+  - Selector: "imageForBounds:attributes:location:textContainer:"
+    MethodKind: Instance
+    SwiftName: image(for:attributes:location:textContainer:)
+  - Selector: "viewProviderForParentView:location:textContainer:"
+    MethodKind: Instance
+    SwiftName: viewProvider(for:location:textContainer:)
 - Name: NSTextElementProvider
   Methods:
   - Selector: "locationFromLocation:withOffset:"
@@ -1477,6 +1497,10 @@
   SwiftName: UIImage.SymbolScale
 - Name: UIImageSymbolWeight
   SwiftName: UIImage.SymbolWeight
+- Name: UIImageVariantShape
+  SwiftName: UIImage.VariantShape
+- Name: UIImageVariantFill
+  SwiftName: UIImage.VariantFill
 - Name: UIPrinterCutterBehavior
   SwiftName: UIPrinter.CutterBehavior
 - Name: UIPrinterJobTypes
@@ -2109,10 +2133,10 @@
   SwiftName: UIView.layoutFittingExpandedSize
 - Name: UICollectionViewFlowLayoutAutomaticSize
   SwiftName: UICollectionViewFlowLayout.automaticSize
-- Name: UITableViewAutomaticDimension
-  SwiftName: UITableView.automaticDimension
 - Name: UICollectionViewLayoutAutomaticDimension
   SwiftPrivate: true
+- Name: UITableViewAutomaticDimension
+  SwiftName: UITableView.automaticDimension
 - Name: UISplitViewControllerAutomaticDimension
   SwiftName: UISplitViewController.automaticDimension
 - Name: UIFloatRangeZero
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIListSeparatorConfiguration.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIListSeparatorConfiguration.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIListSeparatorConfiguration.h	2021-06-22 17:37:34.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIListSeparatorConfiguration.h	2021-07-13 00:42:17.000000000 -0400
@@ -13,6 +13,8 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
+@class UIVisualEffect;
+
 typedef NS_ENUM(NSInteger, UIListSeparatorVisibility) {
     /// UICollectionView list sections will resolve this to an appropriate value.
     UIListSeparatorVisibilityAutomatic,
@@ -54,6 +56,9 @@
 /// The color to use for the separators for the item this configuration is applied to, when the item is in a multiple selection group.
 @property (nonatomic, strong) UIColor *multipleSelectionColor;
 
+/// The visual effect to use for the separators of the item this configuration is applied to.
+@property (nonatomic, copy, nullable) UIVisualEffect *visualEffect API_AVAILABLE(ios(15.0), watchos(8.0)) API_UNAVAILABLE(tvos);
+
 @end
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIMenuElement.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIMenuElement.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIMenuElement.h	2021-06-22 17:37:24.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIMenuElement.h	2021-07-13 00:42:04.000000000 -0400
@@ -31,6 +31,9 @@
 /// The element's title.
 @property (nonatomic, readonly) NSString *title;
 
+/// The element's subtitle.
+@property (nonatomic, nullable, copy) NSString *subtitle API_AVAILABLE(ios(15.0));
+
 /// Image to be displayed alongside the element's title.
 @property (nonatomic, nullable, readonly) UIImage *image;
 
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISearchController.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISearchController.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISearchController.h	2021-06-22 17:37:21.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISearchController.h	2021-07-10 09:49:03.000000000 -0400
@@ -40,6 +40,10 @@
 - (void)updateSearchResultsForSearchController:(nonnull UISearchController *)searchController selectingSearchSuggestion:(nonnull id<UISearchSuggestion>)searchSuggestion API_AVAILABLE(tvos(14.0)) API_UNAVAILABLE(ios, watchos);
 @end
 
+/*!
+ @note On tvOS, restoresFocusAfterTransition is set to NO if UISearchController, or UISearchContainerViewController containing it, is embedded in UITabBarController.
+ */
+
 UIKIT_EXTERN API_AVAILABLE(ios(8.0)) NS_SWIFT_UI_ACTOR
 @interface UISearchController : UIViewController <UIViewControllerTransitioningDelegate, UIViewControllerAnimatedTransitioning>
 
diff -ruN /Applications/Xcode_13.0.0-beta2.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
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UISheetPresentationController.h	2021-06-17 03:46:36.000000000 -0400
+++ /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
@@ -93,9 +93,10 @@
 // Default: nil
 @property (nonatomic, copy, nullable) UISheetPresentationControllerDetentIdentifier selectedDetentIdentifier;
 
-// The identifier of the smallest detent that is not dimmed. When nil or the identifier is not found in detents, all detents are dimmed.
+// 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 smallestUndimmedDetentIdentifier;
+@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-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITableView.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITableView.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITableView.h	2021-06-17 03:44:08.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITableView.h	2021-07-13 00:42:10.000000000 -0400
@@ -184,7 +184,7 @@
 - (nullable NSIndexPath *)indexPathForPreferredFocusedViewInTableView:(UITableView *)tableView API_AVAILABLE(ios(9.0));
 
 /// Determines if the row at the specified index path should also become selected when focus moves to it.
-/// If the table view's global selectionFollowsFocus is enabled but this delegate returns NO, focus will still move to the cell upon selection, but the cell will no longer become selected when focus moves to it.
+/// If the table view's global selectionFollowsFocus is enabled, this method will allow you to override that behavior on a per-index path basis. This method is not called if selectionFollowsFocus is disabled. 
 - (BOOL)tableView:(UITableView *)tableView selectionFollowsFocusForRowAtIndexPath:(NSIndexPath *)indexPath API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(watchos, tvos);
 
 // Spring Loading
@@ -443,7 +443,8 @@
 
 @property (nonatomic) BOOL remembersLastFocusedIndexPath API_AVAILABLE(ios(9.0)); // defaults to NO. If YES, when focusing on a table view the last focused index path is focused automatically. If the table view has never been focused, then the preferred focused index path is used.
 
-// When enabled, the table view ensures that selection is automatically triggered when focus moves to a cell.
+/// When enabled, the table view ensures that selection is automatically triggered when focus moves to a cell.
+/// Defaults to a system derived value based on platform and other properties of the table view.
 @property (nonatomic) BOOL selectionFollowsFocus API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(watchos, tvos);
 
 /// Determines if the table view allows its cells to become focused.
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIToolTipInteraction.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIToolTipInteraction.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIToolTipInteraction.h	2021-06-22 17:37:21.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIToolTipInteraction.h	2021-07-13 00:41:59.000000000 -0400
@@ -13,7 +13,8 @@
 
 @protocol UIToolTipInteractionDelegate;
                            
-UIKIT_EXTERN API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(watchos, tvos) @interface UIToolTipInteraction : NSObject <UIInteraction>
+UIKIT_EXTERN API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(watchos, tvos)
+@interface UIToolTipInteraction : NSObject <UIInteraction>
 
 /// The interaction's delegate.
 @property (nonatomic, weak, nullable) id<UIToolTipInteractionDelegate> delegate;
@@ -33,28 +34,40 @@
 @end
 
 
-UIKIT_EXTERN API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(watchos, tvos) @protocol UIToolTipInteractionDelegate <NSObject>
+UIKIT_EXTERN API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(watchos, tvos)
+@interface UIToolTipConfiguration : NSObject
 
-@optional
+/// The string to annotate the contents at a given point.
+@property (nonatomic, copy, readonly) NSString *toolTip;
 
-/*!
- * @abstract Called when the interaction is about to begin. If both methods are implemented, only this one will be called.
- *
- * @param interaction  This UIToolTipInteraction.
- *
- * @return The string to annotate the contents at the given point. Return nil if you don'��t want to show a tool tip.
- * @return The rectangle containing the contents being annotated by the tool tip.
- */
-- (nullable NSString *)toolTipInteraction:(UIToolTipInteraction *)interaction toolTipAtPoint:(CGPoint)point boundingRect:(CGRect *)outRect;
+/// The rectangle containing the contents being annotated by the tool tip. Value is CGRectNull if the tool tip applies to the entire view.
+@property (nonatomic, readonly) CGRect sourceRect;
+
+/// Creates a UIToolTipConfiguration with the provided string, applied to the entire view.
++ (instancetype)configurationWithToolTip:(NSString *)toolTip;
+
+/// Creates a UIToolTipConfiguration with the provided string, applied to the specified region.
++ (instancetype)configurationWithToolTip:(NSString *)toolTip inRect:(CGRect)sourceRect;
+
++ (instancetype)new NS_UNAVAILABLE;
+- (instancetype)init NS_UNAVAILABLE;
+
+@end
+
+
+UIKIT_EXTERN API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(watchos, tvos)
+@protocol UIToolTipInteractionDelegate <NSObject>
+
+@optional
 
 /*!
  * @abstract Called when the interaction is about to begin.
  *
  * @param interaction  This UIToolTipInteraction.
  *
- * @return The string to be displayed for this interaction.  Returns nil when the interaction is inactive or the hit test fails. The tool tip will apply to the entire view.
+ * @return The tool tip configuration containing the string and rectangle for this interaction. Return nil if the interaction is inactive or the hit test fails.
  */
-- (nullable NSString *)toolTipInteraction:(UIToolTipInteraction *)interaction toolTipAtPoint:(CGPoint)point;
+- (nullable UIToolTipConfiguration *)toolTipInteraction:(UIToolTipInteraction *)interaction configurationAtPoint:(CGPoint)point;
 
 @end
 
diff -ruN /Applications/Xcode_13.0.0-beta2.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
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h	2021-06-22 17:37:38.000000000 -0400
+++ /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
@@ -196,7 +196,8 @@
 // A controller that defines the presentation context can also specify the modal transition style if this property is true.
 @property(nonatomic,assign) BOOL providesPresentationContextTransitionStyle API_AVAILABLE(ios(5.0));
 
-// If YES, when this view controller becomes visible and focusable, focus will be automatically restored to the item that was last focused. For example, when an item in this view controller is focused, and then another view controller is presented and dismissed, the original item will become focused again. Defaults to YES.
+/// If YES, when this view controller becomes visible and focusable, focus will be automatically restored to the item that was last focused. For example, when an item in this view controller is focused, and then another view controller is presented and dismissed, the original item will become focused again. Defaults to YES.
+/// @note On tvOS, this value for UISearchController is set to NO if the controller, or UISearchContainerViewController containing it, is embedded in UITabBarController.
 @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.
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWindow.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWindow.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWindow.h	2021-06-22 17:34:35.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWindow.h	2021-07-13 00:42:17.000000000 -0400
@@ -36,24 +36,24 @@
 
 @property(nonatomic) UIWindowLevel windowLevel;                   // default = 0.0
 
-// When targeting iOS 15.0 or later, this property returns YES if the window is the
-// key window in its scene. Prior to iOS 15.0, this property will return YES if the
-// window is the key window in the application.
+// In apps built against the iOS 15 or tvOS 15 SDK (or later), this property returns YES if
+// the window is its scene's key window. For apps built against earlier SDKs, this property
+// returns YES if the window is the application's key window.
 @property(nonatomic,readonly,getter=isKeyWindow) BOOL keyWindow;
 
 // Default is YES. Return NO to indicate the window cannot become the key window.
 @property (nonatomic, readonly) BOOL canBecomeKeyWindow API_AVAILABLE(ios(15.0));
 
-// Override point for subclasses. Do not call directly. Informs the window it has
-// become the key window. When targeting iOS 15.0 or later, this method will be
-// called when the window becomes key in its scene. Prior to iOS 15.0, this method
-// will be called when the window becomes key in the application.
+// Override point for subclasses. Do not call directly. Informs the window it has become the
+// key window. In apps built against the iOS 15 or tvOS 15 SDK (or later), this method will
+// be called when the window becomes its scene's key window. For apps built against earlier
+// SDKs, this method will be called when the window becomes the application's key window.
 - (void)becomeKeyWindow;
 
-// Override point for subclasses. Do not call directly. Informs the window it has
-// resigned key window status. When targeting iOS 15.0 or later, this method will
-// be called when the window resigns key in its scene. Prior to iOS 15.0, this
-// method will be called when the window resigns key in the application.
+// Override point for subclasses. Do not call directly. Informs the window it has resigned key
+// window status. In apps built against the iOS 15 or tvOS 15 SDK (or later), this method will
+// be called when the window resigns key in its scene. For apps built against earlier SDKs,
+// this method will be called when the window resigns key in the application.
 - (void)resignKeyWindow;
 
 // Make the window key without changing visibility.
@@ -84,16 +84,16 @@
 // Posted when the window becomes hidden with a nil userInfo dictionary.
 UIKIT_EXTERN NSNotificationName const UIWindowDidBecomeHiddenNotification;
 
-// Posted when the window becomes the key window with a nil userInfo dictionary.
-// If targeting iOS 15.0 or later, this notification will be posted when the
-// window becomes the key window in its scene. Prior to iOS 15.0, it will be
-// posted when the window becomes the key window in the application.
+// Posted when the window becomes the key window with a nil userInfo dictionary. In apps built
+// against the iOS 15 or tvOS 15 SDK (or later), this notification will be posted when the window
+// becomes its scene's key window. For apps built against earlier SDKs, it will be posted when
+// the window becomes the application's key window.
 UIKIT_EXTERN NSNotificationName const UIWindowDidBecomeKeyNotification;
 
-// Posted when the window resigns key window status with a nil userInfo dictionary.
-// If targeting iOS 15.0 or later, this notification will be posted when the window
-// resigns key window status in its scene. Prior to iOS 15.0, it will be posted when
-// the window resigns key window status in the application.
+// Posted when the window resigns key window status with a nil userInfo dictionary. In apps built
+// against the iOS 15 or tvOS 15 SDK (or later), this notification will be posted when the window
+// resigns key in its scene. For apps built against earlier SDKs, it will be posted when the window
+// resigns key in the application.
 UIKIT_EXTERN NSNotificationName const UIWindowDidResignKeyNotification;
 
 // Each notification includes a nil object and a userInfo dictionary containing the
Clone this wiki locally