Skip to content

UIKit tvOS xcode16.0 b2

Rolf Bjarne Kvinge edited this page Jul 3, 2024 · 2 revisions

#UIKit.framework

Rolf

diff -ruN /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibility.h /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibility.h
--- /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibility.h	2024-05-31 08:16:57
+++ /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibility.h	2024-06-19 05:53:02
@@ -230,6 +229,9 @@
 // Configure how VoiceOver interacts with direct touch areas.
 @property(nonatomic, assign) UIAccessibilityDirectTouchOptions accessibilityDirectTouchOptions API_AVAILABLE(ios(17.0)) API_UNAVAILABLE(watchos);
 
+// Returns the expanded or collapsed status of an element.
+@property(nonatomic, assign) UIAccessibilityExpandedStatus accessibilityExpandedStatus API_AVAILABLE(ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
+
 /*
  Block based setters take precedence over single line setters (i.e setAccessibilityLabel:(NSString *)) and property overrides (i.e. accessibilityLabel).
  These methods require the block to have a specific return type that corresponds to the attribute's type.
@@ -277,6 +279,7 @@
 @property (nullable, nonatomic, copy) AXBoolReturnBlock accessibilityRespondsToUserInteractionBlock API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
 @property (nullable, nonatomic, copy) AXBoolReturnBlock accessibilityViewIsModalBlock API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
 @property (nullable, nonatomic, copy) AXBoolReturnBlock accessibilityShouldGroupAccessibilityChildrenBlock API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
+@property (nullable, nonatomic, copy) UIAccessibilityExpandedStatus (^accessibilityExpandedStatusBlock)(void) API_AVAILABLE(ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
 
 // Navigating elements
 @property (nullable, nonatomic, copy) AXArrayReturnBlock accessibilityElementsBlock API_AVAILABLE(ios(17.0), tvos(17.0)) API_UNAVAILABLE(watchos);
@@ -479,6 +479,23 @@
 
 @property (nullable, nonatomic, copy) NSArray<UIAccessibilityLocationDescriptor *> *accessibilityDropPointDescriptors API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos);
 
+
+@end
+
+@interface NSObject (UIAccessibilityHitTest)
+
+// Returns an accessibility element at the specified coordinate. The result should return true for isAccessibilityElement
+- (nullable id)accessibilityHitTest:(CGPoint)point withEvent:(nullable UIEvent *)event NS_SWIFT_NAME(accessibilityHitTest(_:event:)) API_AVAILABLE(ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
+
+@end
+
+@interface NSObject (UIAccessibilityTextNavigation)
+
+// An accessibility element that contains text that is semantically connected to this accessibility element. Assistive technologies will transition to these elements when navigating via text granularities, such as when using the VoiceOver Lines rotor.
+@property (nullable, nonatomic, strong) id accessibilityPreviousTextNavigationElement API_AVAILABLE(ios(18.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
+@property (nullable, nonatomic, strong) id accessibilityNextTextNavigationElement API_AVAILABLE(ios(18.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
+@property (nullable, nonatomic, copy) AXObjectReturnBlock accessibilityPreviousTextNavigationElementBlock API_AVAILABLE(ios(18.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
+@property (nullable, nonatomic, copy) AXObjectReturnBlock accessibilityNextTextNavigationElementBlock API_AVAILABLE(ios(18.0), visionos(2.0)) API_UNAVAILABLE(watchos, tvos);
 
 @end
 
diff -ruN /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityConstants.h /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityConstants.h
--- /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityConstants.h	2024-05-31 08:14:13
+++ /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityConstants.h	2024-06-19 09:30:47
@@ -265,6 +265,12 @@
 // Announcements are queued and spoken when other speech utterances have completed.
 UIKIT_EXTERN UIAccessibilityPriority const UIAccessibilityPriorityLow API_AVAILABLE(ios(17.0), watchos(10.0));
 
+typedef NS_ENUM(NSInteger, UIAccessibilityExpandedStatus) {
+    UIAccessibilityExpandedStatusUnsupported = 0,
+    UIAccessibilityExpandedStatusExpanded,
+    UIAccessibilityExpandedStatusCollapsed
+} NS_SWIFT_NAME(UIAccessibility.ExpandedStatus) API_AVAILABLE(ios(18.0), tvos(18.0), visionos(2.0), watchos(11.0));
+
 /*
  Accessibility Speech Attributes
  
diff -ruN /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityCustomAction.h /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityCustomAction.h
--- /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityCustomAction.h	2024-05-30 15:54:08
+++ /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIAccessibilityCustomAction.h	2024-06-19 05:53:45
@@ -62,7 +62,14 @@
  */
 @property (nonatomic, copy, nullable) UIAccessibilityCustomActionHandler actionHandler API_AVAILABLE(ios(13.0), tvos(13.0)) API_UNAVAILABLE(watchos);
 
+/*
+ A localized name that describes the action's category. If nil, the category will be the default "Actions" category
+ */
+@property (nullable, nonatomic, copy) NSString *category API_AVAILABLE(ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos);
+
 @end
+
+UIKIT_EXTERN NSString *const UIAccessibilityCustomActionCategoryEdit API_AVAILABLE(ios(18.0), tvos(18.0), visionos(2.0)) API_UNAVAILABLE(watchos) NS_SWIFT_NAME(UIAccessibilityCustomAction.editCategory);
 
 NS_HEADER_AUDIT_END(nullability, sendability)
 
diff -ruN /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextInputTraits.h /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextInputTraits.h
--- /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextInputTraits.h	2024-05-31 08:14:12
+++ /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextInputTraits.h	2024-06-15 15:07:29
@@ -203,9 +203,12 @@
     /// As well as plain text, Writing Tools will provide text attributes in proofreading suggestions or rewrites that are natively supported or known to be easily adopted (such as lists)
     UIWritingToolsAllowedInputOptionsRichText = 1 << 1,
     
+    /// implies `RichText`,  and Writing Tools may provide attributes for list layout
+    UIWritingToolsAllowedInputOptionsList = 1 << 2, 
+    
     /// implies `RichText`,  and Writing Tools may provide attributes for tabular layout
-    UIWritingToolsAllowedInputOptionsTable = 1 << 2, 
-} API_AVAILABLE(ios(18.0), macos(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
+    UIWritingToolsAllowedInputOptionsTable = 1 << 3,
+} API_AVAILABLE(ios(18.0), macos(15.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(tvos, watchos);
 
 typedef NSString * UITextContentType NS_TYPED_ENUM API_UNAVAILABLE(watchos);
 
diff -ruN /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextView.h /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextView.h
--- /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextView.h	2024-05-30 15:54:14
+++ /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UITextView.h	2024-06-19 09:30:52
@@ -237,6 +237,10 @@
  * @return Returns @c YES while Writing Tools is interacting with the receiver (after @c -textViewWritingToolsWillBegin: completes until @c -textViewWritingToolsDidEnd: completes)
  */
 @property(nonatomic,readonly,getter=isWritingToolsActive) BOOL writingToolsActive API_AVAILABLE(ios(18.0), macos(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
+
+// Also see UITextInputTraits.h
+@property UIWritingToolsBehavior writingToolsBehavior API_AVAILABLE(ios(18.0), macos(15.0)) API_UNAVAILABLE(tvos, watchos, visionos);
+@property UIWritingToolsAllowedInputOptions writingToolsAllowedInputOptions API_AVAILABLE(ios(18.0), macos(15.0)) API_UNAVAILABLE(visionos) API_UNAVAILABLE(tvos, watchos);
 @end
 
 #if TARGET_OS_IOS
diff -ruN /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h
--- /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h	2024-05-30 15:54:30
+++ /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewController.h	2024-06-19 05:53:09
@@ -33,6 +33,7 @@
 @class UIStoryboard, UIStoryboardSegue, UIStoryboardUnwindSegueSource;
 @class UIScrollView;
 @class UIContentUnavailableConfiguration, UIContentUnavailableConfigurationState;
+@class UIViewControllerTransition;
 @protocol UIViewControllerTransitionCoordinator;
 @protocol UIContentConfiguration;
 
@@ -264,6 +265,13 @@
   UIModalTransitionStyleCoverVertical.
 */
 @property(nonatomic,assign) UIModalTransitionStyle modalTransitionStyle API_AVAILABLE(ios(3.0));
+
+/// Preferred system provided transition to use when displaying this
+/// view controller. Note that this only indicates a preference.
+/// The provided transition may be ignored if not supported by the
+/// current context. For example, `UINavigationController` supports
+/// the .zoom transition, but not the .coverVertical transition.
+@property (nonatomic, strong) UIViewControllerTransition *preferredTransition API_AVAILABLE(ios(18.0));
 
 /*
  Defines the presentation style that will be used for this view controller when it is presented modally. Set this property on the view controller to be presented, not the presenter.
diff -ruN /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewControllerTransition.h /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewControllerTransition.h
--- /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewControllerTransition.h	1970-01-01 01:00:00
+++ /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIViewControllerTransition.h	2024-06-19 05:53:46
@@ -0,0 +1,80 @@
+#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/UIViewControllerTransition.h>)
+//
+//  UIViewControllerTransition.h
+//  UIKit
+//
+//  Copyright © 2024 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKitDefines.h>
+#import <UIKit/UIZoomTransitionOptions.h>
+
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
+@class UIView, UIViewController, UIZoomTransitionSourceViewProviderContext;
+
+UIKIT_EXTERN API_AVAILABLE(ios(18.0)) API_UNAVAILABLE(watchos)
+NS_SWIFT_NAME(UIViewController.Transition)
+@interface UIViewControllerTransition : NSObject
+
+/// Zoom from the view provided by the `sourceViewProvider` to the presented or pushed view controller's view.
+/// The transition's `sourceViewProvider` is called whenever the transition needs to request a source view.
+/// Note that it may be called multiple times during the transition's lifecycle in order
+/// to ensure that the transition incorporates the most up-to-date visuals.
+///
+/// **Example**
+///
+/// Consider an interface where a user may tap a cell representing a city to present a detail view.
+/// In the detail view, they may swipe left or right to go to the next city in the list. When the detail view
+/// is dismissed, it should un-zoom to the currently selected city rather than the one that was first selected.
+/// ```
+/// cityViewController.preferredTransition = .zoom { context in
+///     let displayed = context.displayedViewController as! CityViewController
+///     let source = context.sourceViewController as! CityListViewController
+///     return source.cell(for: displayed.cityId)
+/// }
+/// present(cityViewController, animated: true)
+/// ```
++ (instancetype)zoomWithOptions:(nullable UIZoomTransitionOptions *)options sourceViewProvider:(UIView * _Nullable (^)(UIZoomTransitionSourceViewProviderContext *))sourceViewProvider NS_REFINED_FOR_SWIFT;
+
+/// View slides up from the bottom of the screen. Same as `UIModalTransitionStyle.coverVertical`.
++ (instancetype)coverVerticalTransition NS_REFINED_FOR_SWIFT;
+
+/// View flips horizontally in 3D. Same as `UIModalTransitionStyle.flipHorizontal`.
++ (instancetype)flipHorizontalTransition NS_REFINED_FOR_SWIFT;
+
+/// Fades out the current view while fading in the new view. Same as `UIModalTransitionStyle.crossDissolve`.
++ (instancetype)crossDissolveTransition NS_REFINED_FOR_SWIFT;
+
+/// One corner of the current view curls up to reveal the presented view underneath. Same as `UIModalTransitionStyle.partialCurl`.
++ (instancetype)partialCurlTransition NS_REFINED_FOR_SWIFT;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+
+UIKIT_EXTERN API_AVAILABLE(ios(18.0)) API_UNAVAILABLE(watchos)
+NS_SWIFT_NAME(UIViewControllerTransition.ZoomSourceViewProviderContext)
+@interface UIZoomTransitionSourceViewProviderContext : NSObject
+
+/// View controller that is the source of the zoom transition.
+@property (nonatomic, strong, readonly) UIViewController *sourceViewController;
+
+/// The view controller being zoomed into by the transition.
+@property (nonatomic, strong, readonly) UIViewController *zoomedViewController;
+
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+
+
+NS_HEADER_AUDIT_END(nullability, sendability)
+
+#else
+#import <UIKitCore/UIViewControllerTransition.h>
+#endif
diff -ruN /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIZoomTransitionOptions.h /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIZoomTransitionOptions.h
--- /Applications/Xcode_16.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIZoomTransitionOptions.h	1970-01-01 01:00:00
+++ /Applications/Xcode_16.0.0-beta2.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIZoomTransitionOptions.h	2024-06-19 05:53:42
@@ -0,0 +1,72 @@
+#if (defined(USE_UIKIT_PUBLIC_HEADERS) && USE_UIKIT_PUBLIC_HEADERS) || !__has_include(<UIKitCore/UIZoomTransitionOptions.h>)
+//
+//  UIZoomTransitionOptions.h
+//  UIKit
+//
+//  Copyright © 2024 Apple Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKitDefines.h>
+#import <UIKit/UIView.h>
+#import <UIKit/UIColor.h>
+
+NS_HEADER_AUDIT_BEGIN(nullability, sendability)
+
+@class UIBlurEffect, UIZoomTransitionInteractionContext, UIZoomTransitionAlignmentRectContext;
+
+UIKIT_EXTERN API_AVAILABLE(ios(18.0)) API_UNAVAILABLE(watchos)
+NS_SWIFT_NAME(UIViewControllerTransition.ZoomOptions)
+@interface UIZoomTransitionOptions : NSObject <NSCopying>
+
+/// Called when an interactive dismissal of this transition begins.
+/// Return value indicates whether the interaction should begin for the given context.
+@property (nonatomic, copy, nullable) BOOL (^interactiveDismissShouldBegin)(UIZoomTransitionInteractionContext *);
+
+/// Return a frame in the zoomed view controller's view to which to align the source view.
+/// Return `CGRectNull` to indicate no preference.
+@property (nonatomic, copy, nullable) CGRect (^alignmentRectProvider)(UIZoomTransitionAlignmentRectContext *) NS_REFINED_FOR_SWIFT;
+
+/// Dimming color to apply to the content behind the zoomed in view. Set to nil to use the default.
+@property (nonatomic, strong, nullable) UIColor *dimmingColor;
+
+/// Visual effect to apply to the content behind the zoomed in view. Defaults to nil.
+@property (nonatomic, strong, nullable) UIBlurEffect *dimmingVisualEffect;
+
+@end
+
+
+UIKIT_EXTERN API_AVAILABLE(ios(18.0)) API_UNAVAILABLE(watchos)
+NS_SWIFT_NAME(UIZoomTransitionOptions.InteractionContext)
+@interface UIZoomTransitionInteractionContext : NSObject
+
+/// Location of the interaction in the displayed view controller's view's coordinate space.
+@property (nonatomic, readonly) CGPoint location;
+
+/// The interaction's velocity.
+@property (nonatomic, readonly) CGVector velocity;
+
+/// Whether the interaction would begin under the current conditions by default.
+@property (nonatomic, readonly) BOOL willBegin;
+
+@end
+
+
+UIKIT_EXTERN API_AVAILABLE(ios(18.0)) API_UNAVAILABLE(watchos)
+NS_SWIFT_NAME(UIZoomTransitionOptions.AlignmentRectContext)
+@interface UIZoomTransitionAlignmentRectContext : NSObject
+
+/// The transition's source view.
+@property (nonatomic, readonly) UIView *sourceView;
+
+/// The zoomed view controller.
+@property (nonatomic, readonly) UIViewController *zoomedViewController;
+
+@end
+
+NS_HEADER_AUDIT_END(nullability, sendability)
+
+
+#else
+#import <UIKitCore/UIZoomTransitionOptions.h>
+#endif
Clone this wiki locally