-
Notifications
You must be signed in to change notification settings - Fork 549
UIKit tvOS xcode16.0 b5
Alex Soto edited this page Aug 7, 2024
·
3 revisions
#UIKit.framework
diff -ruN /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContentSizeCategory.h /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContentSizeCategory.h
--- /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContentSizeCategory.h 2024-07-12 05:05:28
+++ /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIContentSizeCategory.h 2024-07-27 09:14:05
@@ -32,8 +32,8 @@
UIKIT_EXTERN UIContentSizeCategory const UIContentSizeCategoryAccessibilityExtraExtraExtraLarge API_AVAILABLE(ios(7.0)) API_UNAVAILABLE(watchos);
// Notification is emitted when the user has changed the preferredContentSizeCategory for the system
-UIKIT_EXTERN NSNotificationName const UIContentSizeCategoryDidChangeNotification API_AVAILABLE(ios(7.0)) API_UNAVAILABLE(watchos); // userInfo dictionary will contain new value for UIContentSizeCategoryNewValueKey
-UIKIT_EXTERN NSString *const UIContentSizeCategoryNewValueKey API_AVAILABLE(ios(7.0)) API_UNAVAILABLE(watchos); // NSString instance with new content size category in userInfo
+UIKIT_EXTERN NSNotificationName const UIContentSizeCategoryDidChangeNotification API_AVAILABLE(ios(7.0)) API_UNAVAILABLE(watchos) NS_SWIFT_NONISOLATED; // userInfo dictionary will contain new value for UIContentSizeCategoryNewValueKey
+UIKIT_EXTERN NSString *const UIContentSizeCategoryNewValueKey API_AVAILABLE(ios(7.0)) API_UNAVAILABLE(watchos) NS_SWIFT_NONISOLATED; // NSString instance with new content size category in userInfo
UIKIT_EXTERN BOOL UIContentSizeCategoryIsAccessibilityCategory(UIContentSizeCategory category) API_AVAILABLE(ios(11.0), tvos(11.0)) API_UNAVAILABLE(watchos) NS_REFINED_FOR_SWIFT;
UIKIT_EXTERN NSComparisonResult UIContentSizeCategoryCompareToCategory(UIContentSizeCategory lhs, UIContentSizeCategory rhs) API_AVAILABLE(ios(11.0), tvos(11.0)) API_UNAVAILABLE(watchos) NS_REFINED_FOR_SWIFT;
diff -ruN /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDiffableDataSource.h /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDiffableDataSource.h
--- /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDiffableDataSource.h 2024-07-12 13:13:03
+++ /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDiffableDataSource.h 2024-08-02 00:42:04
@@ -138,7 +138,7 @@
// Create a snapshot of the current UICollectionView data source state.
// This snapshot can be mutated and later applied via -applySnapshot:animatingDifferences:
-- (NSDiffableDataSourceSnapshot<SectionIdentifierType,ItemIdentifierType>*)snapshot UIKIT_SWIFT_ACTOR_INDEPENDENT;
+- (NSDiffableDataSourceSnapshot<SectionIdentifierType,ItemIdentifierType>*)snapshot;
// Apply a snapshot to the collection view committing to the new data source state.
//
@@ -152,8 +152,8 @@
// (if you violate this restriction and mix calls between the main queue and some background queue, the framework
// will log and/or assert to avoid deadlocks)
-- (void)applySnapshot:(NSDiffableDataSourceSnapshot<SectionIdentifierType,ItemIdentifierType>*)snapshot animatingDifferences:(BOOL)animatingDifferences UIKIT_SWIFT_ACTOR_INDEPENDENT;
-- (void)applySnapshot:(NSDiffableDataSourceSnapshot<SectionIdentifierType,ItemIdentifierType>*)snapshot animatingDifferences:(BOOL)animatingDifferences completion:(void(^ _Nullable)(void))completion NS_SWIFT_DISABLE_ASYNC UIKIT_SWIFT_ACTOR_INDEPENDENT;
+- (void)applySnapshot:(NSDiffableDataSourceSnapshot<SectionIdentifierType,ItemIdentifierType>*)snapshot animatingDifferences:(BOOL)animatingDifferences;
+- (void)applySnapshot:(NSDiffableDataSourceSnapshot<SectionIdentifierType,ItemIdentifierType>*)snapshot animatingDifferences:(BOOL)animatingDifferences completion:(void(^ _Nullable)(void))completion NS_SWIFT_DISABLE_ASYNC;
// Apply a snapshot to the collection view using reloadData.
//
@@ -162,8 +162,8 @@
// new state immediately (e.g. recycling the collection view for use with a completely different data set), or when you
// specifically want to skip diffing (e.g. applying an exceptionally large changeset).
-- (void)applySnapshotUsingReloadData:(NSDiffableDataSourceSnapshot<SectionIdentifierType,ItemIdentifierType>*)snapshot UIKIT_SWIFT_ACTOR_INDEPENDENT API_AVAILABLE(ios(15.0), tvos(15.0));
-- (void)applySnapshotUsingReloadData:(NSDiffableDataSourceSnapshot<SectionIdentifierType,ItemIdentifierType>*)snapshot completion:(void(^ _Nullable)(void))completion NS_SWIFT_DISABLE_ASYNC UIKIT_SWIFT_ACTOR_INDEPENDENT API_AVAILABLE(ios(15.0), tvos(15.0));
+- (void)applySnapshotUsingReloadData:(NSDiffableDataSourceSnapshot<SectionIdentifierType,ItemIdentifierType>*)snapshot API_AVAILABLE(ios(15.0), tvos(15.0));
+- (void)applySnapshotUsingReloadData:(NSDiffableDataSourceSnapshot<SectionIdentifierType,ItemIdentifierType>*)snapshot completion:(void(^ _Nullable)(void))completion NS_SWIFT_DISABLE_ASYNC API_AVAILABLE(ios(15.0), tvos(15.0));
// convert section index <-> SectionIdentifierType
@@ -181,9 +181,9 @@
// Section Snapshot Support
-- (void)applySnapshot:(NSDiffableDataSourceSectionSnapshot<ItemIdentifierType>*)snapshot toSection:(SectionIdentifierType)sectionIdentifier animatingDifferences:(BOOL)animatingDifferences UIKIT_SWIFT_ACTOR_INDEPENDENT API_AVAILABLE(ios(14.0),tvos(14.0));
-- (void)applySnapshot:(NSDiffableDataSourceSectionSnapshot<ItemIdentifierType>*)snapshot toSection:(SectionIdentifierType)sectionIdentifier animatingDifferences:(BOOL)animatingDifferences completion:(void (^ _Nullable)(void))completion UIKIT_SWIFT_ACTOR_INDEPENDENT NS_SWIFT_DISABLE_ASYNC API_AVAILABLE(ios(14.0),tvos(14.0));
-- (NSDiffableDataSourceSectionSnapshot<ItemIdentifierType>*)snapshotForSection:(SectionIdentifierType)section UIKIT_SWIFT_ACTOR_INDEPENDENT API_AVAILABLE(ios(14.0),tvos(14.0));
+- (void)applySnapshot:(NSDiffableDataSourceSectionSnapshot<ItemIdentifierType>*)snapshot toSection:(SectionIdentifierType)sectionIdentifier animatingDifferences:(BOOL)animatingDifferences API_AVAILABLE(ios(14.0),tvos(14.0));
+- (void)applySnapshot:(NSDiffableDataSourceSectionSnapshot<ItemIdentifierType>*)snapshot toSection:(SectionIdentifierType)sectionIdentifier animatingDifferences:(BOOL)animatingDifferences completion:(void (^ _Nullable)(void))completion NS_SWIFT_DISABLE_ASYNC API_AVAILABLE(ios(14.0),tvos(14.0));
+- (NSDiffableDataSourceSectionSnapshot<ItemIdentifierType>*)snapshotForSection:(SectionIdentifierType)section API_AVAILABLE(ios(14.0),tvos(14.0));
@property(nonatomic,copy) UICollectionViewDiffableDataSourceSectionSnapshotHandlers<ItemIdentifierType> *sectionSnapshotHandlers API_AVAILABLE(ios(14.0),tvos(14.0));
@@ -201,7 +201,7 @@
// Create a snapshot of the current UITableView data source state.
// This snapshot can be mutated and later applied via -applySnapshot:animatingDifferences:
-- (NSDiffableDataSourceSnapshot<SectionIdentifierType,ItemIdentifierType>*)snapshot UIKIT_SWIFT_ACTOR_INDEPENDENT;
+- (NSDiffableDataSourceSnapshot<SectionIdentifierType,ItemIdentifierType>*)snapshot;
// Apply a snapshot to the table view committing to the new data source state.
//
@@ -215,8 +215,8 @@
// (if you violate this restriction and mix calls between the main queue and some background queue, the framework
// will log and/or assert to avoid deadlocks)
-- (void)applySnapshot:(NSDiffableDataSourceSnapshot<SectionIdentifierType,ItemIdentifierType>*)snapshot animatingDifferences:(BOOL)animatingDifferences UIKIT_SWIFT_ACTOR_INDEPENDENT;
-- (void)applySnapshot:(NSDiffableDataSourceSnapshot<SectionIdentifierType,ItemIdentifierType>*)snapshot animatingDifferences:(BOOL)animatingDifferences completion:(void(^ _Nullable)(void))completion NS_SWIFT_DISABLE_ASYNC UIKIT_SWIFT_ACTOR_INDEPENDENT;
+- (void)applySnapshot:(NSDiffableDataSourceSnapshot<SectionIdentifierType,ItemIdentifierType>*)snapshot animatingDifferences:(BOOL)animatingDifferences;
+- (void)applySnapshot:(NSDiffableDataSourceSnapshot<SectionIdentifierType,ItemIdentifierType>*)snapshot animatingDifferences:(BOOL)animatingDifferences completion:(void(^ _Nullable)(void))completion NS_SWIFT_DISABLE_ASYNC;
// Apply a snapshot to the table view using reloadData.
//
@@ -225,8 +225,8 @@
// new state immediately (e.g. recycling the table view for use with a completely different data set), or when you
// specifically want to skip diffing (e.g. applying an exceptionally large changeset).
-- (void)applySnapshotUsingReloadData:(NSDiffableDataSourceSnapshot<SectionIdentifierType,ItemIdentifierType>*)snapshot UIKIT_SWIFT_ACTOR_INDEPENDENT API_AVAILABLE(ios(15.0), tvos(15.0));
-- (void)applySnapshotUsingReloadData:(NSDiffableDataSourceSnapshot<SectionIdentifierType,ItemIdentifierType>*)snapshot completion:(void(^ _Nullable)(void))completion NS_SWIFT_DISABLE_ASYNC UIKIT_SWIFT_ACTOR_INDEPENDENT API_AVAILABLE(ios(15.0), tvos(15.0));
+- (void)applySnapshotUsingReloadData:(NSDiffableDataSourceSnapshot<SectionIdentifierType,ItemIdentifierType>*)snapshot API_AVAILABLE(ios(15.0), tvos(15.0));
+- (void)applySnapshotUsingReloadData:(NSDiffableDataSourceSnapshot<SectionIdentifierType,ItemIdentifierType>*)snapshot completion:(void(^ _Nullable)(void))completion NS_SWIFT_DISABLE_ASYNC API_AVAILABLE(ios(15.0), tvos(15.0));
// convert section index <-> SectionIdentifierType
diff -ruN /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocus.h /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocus.h
--- /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocus.h 2024-07-12 05:05:25
+++ /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIFocus.h 2024-07-29 00:04:38
@@ -26,6 +26,19 @@
UIFocusHeadingLast API_AVAILABLE(ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos) = 1 << 9,
} API_AVAILABLE(ios(9.0)) API_UNAVAILABLE(watchos);
+typedef NS_ENUM(NSInteger, UIFocusItemDeferralMode) {
+ /// Use the system default behavior.
+ UIFocusItemDeferralModeAutomatic,
+ /// Always defer focus for this item, even if deferral is disabled right now.
+ /// This means a programmatic update to this item would result in focus
+ /// disappearing until the user interacts with the focus engine again.
+ UIFocusItemDeferralModeAlways,
+ /// Never defer focus for this item. When a programmatic focus update
+ /// lands on this item, it will always be and appear focused even if focus
+ /// deferral is currently enabled.
+ UIFocusItemDeferralModeNever,
+} API_AVAILABLE(ios(18.0), tvos(18.0)) API_UNAVAILABLE(watchos);
+
typedef NSString * UIFocusSoundIdentifier NS_TYPED_EXTENSIBLE_ENUM API_UNAVAILABLE(watchos);
/// These are focus group priorities that the system uses and that clients can use to make an item
@@ -104,6 +117,13 @@
/// The priority this item has in its focus group. The higher the priority, the more likely it is to get picked when focus moves into this group.
/// Note: this method can only be used to increase an item's priority, not decrease it. For example if an item is currently selected, the actual priority of this item will be determined by MAX(focusGroupPriority, UIFocusGroupPrioritySelected).
@property (nonatomic, readonly) UIFocusGroupPriority focusGroupPriority API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(tvos, watchos);
+
+/// If this property is present and returns `UIFocusItemDeferralModeNever`, the focus deferral will not be enabled again
+/// after the user engagement timeout has expired if this item is currently focused and programmatic focus updates pointing
+/// to this item will be executed immediatly. If it returns `UIFocusItemDeferralModeAlways` focus will always be deferred
+/// when this item is supposed to be focused.
+/// Does nothing when focus deferral is not supported on the platform.
+@property (nonatomic, readonly) UIFocusItemDeferralMode focusItemDeferralMode;
/// If this returns YES, the focus item is considered transparent in terms of occlusion. Items that are behind it are focusable.
/// This value is ignored when the item is focusable, in which case the item is never considered transparent.
diff -ruN /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKitDefines.h /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKitDefines.h
--- /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKitDefines.h 2024-07-12 05:05:25
+++ /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKitDefines.h 2024-07-27 09:14:02
@@ -28,8 +28,6 @@
#define UIKIT_CLASS_AVAILABLE_IOS_TVOS(_ios, _tvos) UIKIT_EXTERN __IOS_AVAILABLE(_ios) __WATCHOS_UNAVAILABLE __TVOS_AVAILABLE(_tvos)
#define UIKIT_CLASS_AVAILABLE_IOS_WATCHOS_TVOS(_ios, _watchos, _tvos) UIKIT_EXTERN __IOS_AVAILABLE(_ios) __WATCHOS_AVAILABLE(_watchos) __TVOS_AVAILABLE(_tvos)
-#define UIKIT_SWIFT_ACTOR_INDEPENDENT __attribute__((swift_attr("nonisolated")))
-
#if __swift__
#define UIKIT_SWIFT_FORWARD_DECLARE(DECLARATION) DECLARATION;
#else
diff -ruN /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPasteboard.h /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPasteboard.h
--- /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPasteboard.h 2024-07-12 05:05:30
+++ /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPasteboard.h 2024-08-02 00:40:15
@@ -168,11 +168,11 @@
// Notification
-UIKIT_EXTERN NSNotificationName const UIPasteboardChangedNotification API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos);
-UIKIT_EXTERN NSString *const UIPasteboardChangedTypesAddedKey API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos);
-UIKIT_EXTERN NSString *const UIPasteboardChangedTypesRemovedKey API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos);
+UIKIT_EXTERN NSNotificationName const UIPasteboardChangedNotification API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos) NS_SWIFT_NONISOLATED;
+UIKIT_EXTERN NSString *const UIPasteboardChangedTypesAddedKey API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos) NS_SWIFT_NONISOLATED;
+UIKIT_EXTERN NSString *const UIPasteboardChangedTypesRemovedKey API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos) NS_SWIFT_NONISOLATED;
-UIKIT_EXTERN NSNotificationName const UIPasteboardRemovedNotification API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos);
+UIKIT_EXTERN NSNotificationName const UIPasteboardRemovedNotification API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos) NS_SWIFT_NONISOLATED;
// Types
diff -ruN /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPointerLockState.h /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPointerLockState.h
--- /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPointerLockState.h 2024-07-12 05:05:29
+++ /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPointerLockState.h 2024-07-27 09:14:06
@@ -36,7 +36,7 @@
* It contains the related UIScene in the user info dictionary of the notification.
*/
UIKIT_EXTERN NSNotificationName const UIPointerLockStateDidChangeNotification NS_SWIFT_NAME(UIPointerLockState.didChangeNotification) API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(tvos, watchos) NS_SWIFT_NONISOLATED;
-UIKIT_EXTERN NSString *const UIPointerLockStateSceneUserInfoKey NS_SWIFT_NAME(UIPointerLockState.sceneUserInfoKey)API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(tvos, watchos);
+UIKIT_EXTERN NSString *const UIPointerLockStateSceneUserInfoKey NS_SWIFT_NAME(UIPointerLockState.sceneUserInfoKey)API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(tvos, watchos) NS_SWIFT_NONISOLATED;
NS_HEADER_AUDIT_END(nullability, sendability)
diff -ruN /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPresentationController.h /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPresentationController.h
--- /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPresentationController.h 2024-07-13 14:23:37
+++ /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIPresentationController.h 2024-08-02 00:42:04
@@ -118,7 +118,7 @@
API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos)
@interface UIPresentationController () <UITraitChangeObservable>
-@property (nonatomic, readonly) id<UITraitOverrides> traitOverrides API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) id<UITraitOverrides> traitOverrides API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
@end
NS_HEADER_AUDIT_END(nullability, sendability)
diff -ruN /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITab.h /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITab.h
--- /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITab.h 2024-07-16 01:18:10
+++ /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITab.h 2024-08-02 00:40:10
@@ -75,6 +75,14 @@
/// For root tabs, the view controller must be non-nil.
@property (nonatomic, strong, nullable, readonly) UIViewController *viewController;
+#pragma mark Managed Navigation
+
+/// The managing tab group for the tab. This returns the rootmost `UITabGroup` in the tab's parent hierarchy with an
+/// active `managingNavigationController`. This can be different to `parent` if the tab is nested in multiple
+/// levels of tab groups. If the tab does not belong to a hierarchy with a managing navigation controller, then this
+/// will return nil. Default is nil.
+@property (nonatomic, strong, nullable, readonly) UITabGroup *managingTabGroup;
+
#pragma mark Customization
/// Determines if the tab is currently hidden. Default is NO.
diff -ruN /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabBarController.h /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabBarController.h
--- /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabBarController.h 2024-07-12 04:49:15
+++ /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabBarController.h 2024-07-29 00:04:47
@@ -133,7 +133,20 @@
/// Notifies the deleagte that the display order for the specified tab has been changed by the user.
- (void)tabBarController:(UITabBarController *)tabBarController displayOrderDidChangeForGroup:(UITabGroup *)group API_AVAILABLE(ios(18.0), visionos(2.0)) API_UNAVAILABLE(tvos, watchos);
-
+/// Used with `UITabGroup.managingNavigationController`, this method allows the delegate to customize the displayed view controllers
+/// within the navigation stack for each level of selected tab. This method is called by the system if the selected tab in the `UITabBarController`
+/// belongs to or is in the hierarchy of a managing tab group (i.e. a `UITabGroup` with a non-nil `managingNavigationController`). By default,
+/// if this method is not implemented, the system will build the navigation stack by adding each tab's `viewController` into the hierarchy, if one exists.
+/// This is especially useful to hide certain view controllers when transitioning between compact and regular size classes.
+///
+/// @param tabBarController The tab bar controller managed by the delegate.
+/// @param tab The tab for which the displayed view controllers is being requested for by its `managingTabGroup`. Each tab in the selection hierarchy will be called once.
+/// @param proposedViewControllers The proposed view controllers for the given tab. In general, the propoesd view controller is a single-item array of the tab's viewController. If other view controllers are pushed onto the navigation stack, they will be part of the last (leafmost) tab's `proposedViewControllers` such that they are preserved between updates.
+///
+/// @return A list of view controllers represented by the tab in the navigation stack.
+- (NSArray<UIViewController *> *)tabBarController:(UITabBarController *)tabBarController
+ displayedViewControllersForTab:(UITab *)tab
+ proposedViewControllers:(NSArray<UIViewController *> *)proposedViewControllers API_AVAILABLE(ios(18.0), visionos(2.0)) API_UNAVAILABLE(tvos, watchos);
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController API_AVAILABLE(ios(3.0));
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController;
diff -ruN /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabGroup.h /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabGroup.h
--- /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabGroup.h 2024-07-12 05:05:28
+++ /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITabGroup.h 2024-08-02 00:42:00
@@ -51,14 +51,25 @@
/// sorted items. Identifiers that do not match tabs in `children` will be ignored.
@property (nonatomic, strong, readonly) NSArray<UITab *> *displayOrder;
-/// A navigation controller used to automatically manage the view controller hierarchy
-/// of the group. The default value is a plain `UINavigationController`; either set this
-/// to your own UINavigationController subclass or `nil` to opt out of the behavior.
-@property (nonatomic, strong, nullable) UINavigationController *managingNavigationController;
-
/// Returns the `tab` matching the specified `identifier` in the group's children and its descendants.
/// Returns nil if no tab is found matching the `identifier`.
- (nullable UITab *)tabForIdentifier:(NSString *)identifier;
+
+#pragma mark Managed Navigation
+
+/// A navigation controller used to automatically manage the view controller hierarchy of the group.
+/// Set a `UINavigationController` to allow the tab group to manage the hierarchy automatically.
+/// The navigation stack of the managing navigation controller will be managed by the tab group based on
+/// the selected tab of the group. When multiple navigation controllers are set on nested groups, the rootmost
+/// controller is used. Default is nil.
+///
+/// By default, the navigation stack is represented by the view controller of each tab of the selected tree, if a
+/// view controller is provided for that level. If no view controller is provided for that level, then it will be ignored.
+///
+/// To customize the displayed view controllers per tab level of selection, implement the delegate method
+/// `tabBarController:displayedViewControllersForTab:proposedViewControllers:`
+/// on `UITabBarControllerDelegate`, which will propose a set of view controllers per level.
+@property (nonatomic, strong, nullable) UINavigationController *managingNavigationController;
#pragma mark Sidebar
diff -ruN /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextField.h /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextField.h
--- /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextField.h 2024-07-12 05:05:27
+++ /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextField.h 2024-08-02 00:40:12
@@ -187,7 +187,7 @@
UIKIT_EXTERN NSNotificationName const UITextFieldTextDidEndEditingNotification API_UNAVAILABLE(watchos) NS_SWIFT_NONISOLATED;
UIKIT_EXTERN NSNotificationName const UITextFieldTextDidChangeNotification API_UNAVAILABLE(watchos) NS_SWIFT_NONISOLATED;
-UIKIT_EXTERN NSString *const UITextFieldDidEndEditingReasonKey API_AVAILABLE(ios(10.0)) API_UNAVAILABLE(watchos);
+UIKIT_EXTERN NSString *const UITextFieldDidEndEditingReasonKey API_AVAILABLE(ios(10.0)) API_UNAVAILABLE(watchos) NS_SWIFT_NONISOLATED;
NS_HEADER_AUDIT_END(nullability, sendability)
diff -ruN /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h
--- /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h 2024-07-13 14:23:30
+++ /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h 2024-08-02 00:41:58
@@ -719,11 +719,11 @@
API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos)
@interface UIView () <UITraitChangeObservable>
-@property (nonatomic, readonly) id<UITraitOverrides> traitOverrides API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) id<UITraitOverrides> traitOverrides API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
/// Forces an immediate trait update for this view (and its view controller, if applicable) and any subviews,
/// including any view controllers or views in its subtree. Any trait change callbacks are sent synchronously.
-- (void)updateTraitsIfNeeded API_UNAVAILABLE(watchos);
+- (void)updateTraitsIfNeeded API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
@end
diff -ruN /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h
--- /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h 2024-07-12 05:05:34
+++ /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h 2024-07-27 09:22:48
@@ -702,11 +702,11 @@
API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos)
@interface UIViewController () <UITraitChangeObservable>
-@property (nonatomic, readonly) id<UITraitOverrides> traitOverrides API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) id<UITraitOverrides> traitOverrides API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
/// Forces an immediate trait update for this view controller and its view, including any view
/// controllers and views in this subtree. Any trait change callbacks are sent synchronously.
-- (void)updateTraitsIfNeeded API_UNAVAILABLE(watchos);
+- (void)updateTraitsIfNeeded API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
@end
diff -ruN /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWindow.h /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWindow.h
--- /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWindow.h 2024-07-12 04:49:14
+++ /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWindow.h 2024-07-27 09:22:44
@@ -131,11 +131,11 @@
UIKIT_EXTERN NSNotificationName const UIKeyboardWillHideNotification API_UNAVAILABLE(tvos, watchos) NS_SWIFT_NONISOLATED;
UIKIT_EXTERN NSNotificationName const UIKeyboardDidHideNotification API_UNAVAILABLE(tvos, watchos) NS_SWIFT_NONISOLATED;
-UIKIT_EXTERN NSString *const UIKeyboardFrameBeginUserInfoKey API_AVAILABLE(ios(3.2)) API_UNAVAILABLE(tvos, watchos); // NSValue of CGRect
-UIKIT_EXTERN NSString *const UIKeyboardFrameEndUserInfoKey API_AVAILABLE(ios(3.2)) API_UNAVAILABLE(tvos, watchos); // NSValue of CGRect
-UIKIT_EXTERN NSString *const UIKeyboardAnimationDurationUserInfoKey API_AVAILABLE(ios(3.0)) API_UNAVAILABLE(tvos, watchos); // NSNumber of double
-UIKIT_EXTERN NSString *const UIKeyboardAnimationCurveUserInfoKey API_AVAILABLE(ios(3.0)) API_UNAVAILABLE(tvos, watchos); // NSNumber of NSUInteger (UIViewAnimationCurve)
-UIKIT_EXTERN NSString *const UIKeyboardIsLocalUserInfoKey API_AVAILABLE(ios(9.0)) API_UNAVAILABLE(tvos, watchos); // NSNumber of BOOL
+UIKIT_EXTERN NSString *const UIKeyboardFrameBeginUserInfoKey API_AVAILABLE(ios(3.2)) API_UNAVAILABLE(tvos, watchos) NS_SWIFT_NONISOLATED; // NSValue of CGRect
+UIKIT_EXTERN NSString *const UIKeyboardFrameEndUserInfoKey API_AVAILABLE(ios(3.2)) API_UNAVAILABLE(tvos, watchos) NS_SWIFT_NONISOLATED; // NSValue of CGRect
+UIKIT_EXTERN NSString *const UIKeyboardAnimationDurationUserInfoKey API_AVAILABLE(ios(3.0)) API_UNAVAILABLE(tvos, watchos) NS_SWIFT_NONISOLATED; // NSNumber of double
+UIKIT_EXTERN NSString *const UIKeyboardAnimationCurveUserInfoKey API_AVAILABLE(ios(3.0)) API_UNAVAILABLE(tvos, watchos) NS_SWIFT_NONISOLATED; // NSNumber of NSUInteger (UIViewAnimationCurve)
+UIKIT_EXTERN NSString *const UIKeyboardIsLocalUserInfoKey API_AVAILABLE(ios(9.0)) API_UNAVAILABLE(tvos, watchos) NS_SWIFT_NONISOLATED; // NSNumber of BOOL
// Like the standard keyboard notifications above, these additional notifications include
// a nil object and begin/end frames of the keyboard in screen coordinates in the userInfo dictionary.
@@ -143,9 +143,9 @@
UIKIT_EXTERN NSNotificationName const UIKeyboardDidChangeFrameNotification API_AVAILABLE(ios(5.0)) API_UNAVAILABLE(tvos, watchos) NS_SWIFT_NONISOLATED;
// These keys are superseded by UIKeyboardFrameBeginUserInfoKey and UIKeyboardFrameEndUserInfoKey.
-UIKIT_EXTERN NSString *const UIKeyboardCenterBeginUserInfoKey API_DEPRECATED("", ios(2.0, 3.2)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(visionos, watchos);
-UIKIT_EXTERN NSString *const UIKeyboardCenterEndUserInfoKey API_DEPRECATED("", ios(2.0, 3.2)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(visionos, watchos);
-UIKIT_EXTERN NSString *const UIKeyboardBoundsUserInfoKey API_DEPRECATED("", ios(2.0, 3.2)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(visionos, watchos);
+UIKIT_EXTERN NSString *const UIKeyboardCenterBeginUserInfoKey API_DEPRECATED("", ios(2.0, 3.2)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(visionos, watchos) NS_SWIFT_NONISOLATED;
+UIKIT_EXTERN NSString *const UIKeyboardCenterEndUserInfoKey API_DEPRECATED("", ios(2.0, 3.2)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(visionos, watchos) NS_SWIFT_NONISOLATED;
+UIKIT_EXTERN NSString *const UIKeyboardBoundsUserInfoKey API_DEPRECATED("", ios(2.0, 3.2)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(visionos, watchos) NS_SWIFT_NONISOLATED;
NS_HEADER_AUDIT_END(nullability, sendability)
diff -ruN /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWindowScene.h /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWindowScene.h
--- /Applications/Xcode_16.0.0-beta4.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWindowScene.h 2024-07-12 04:49:09
+++ /Applications/Xcode_16.0.0-beta5.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIWindowScene.h 2024-08-02 00:40:12
@@ -54,7 +54,7 @@
API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos)
@interface UIWindowScene () <UITraitEnvironment, UITraitChangeObservable>
-@property (nonatomic, readonly) id<UITraitOverrides> traitOverrides API_UNAVAILABLE(watchos);
+@property (nonatomic, readonly) id<UITraitOverrides> traitOverrides API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
@end
#pragma mark - UIWindowSceneDelegate