Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save kylehowells/32c7f7475698b5f74eeb183f8db9d186 to your computer and use it in GitHub Desktop.

Select an option

Save kylehowells/32c7f7475698b5f74eeb183f8db9d186 to your computer and use it in GitHub Desktop.
UIKit — Full ObjC API Diff: iOS 26.2 → iOS 27 (beta) - Generated by Claude Code from Xcode-beta.app

UIKit — Full ObjC API Diff: iOS 26.2 → iOS 27 (beta)

Old: Xcode 26.2 (iPhoneOS26.2 SDK) · New: Xcode 27 beta (iPhoneOS 27.0 SDK)

Scope: public ObjC headers of UIKit.framework (iPhoneOS device SDK).

Legend (inside diff blocks): + added · - removed · ~ newly deprecated/obsoleted · ±/ signature changed (old → new).


New Classes (7)

NSTextBlock

@interface NSTextBlock : NSObject <NSSecureCoding, NSCopying>

+ @property (nullable, copy, NS_NONATOMIC_IOSONLY) UIColor *backgroundColor
+ @property (readonly, NS_NONATOMIC_IOSONLY) CGFloat contentWidth
+ @property (readonly, NS_NONATOMIC_IOSONLY) NSTextBlockValueType contentWidthValueType
+ @property (NS_NONATOMIC_IOSONLY) NSTextBlockVerticalAlignment verticalAlignment
+ - (nullable UIColor *)borderColorForRectEdge:(CGRectEdge)rectEdge API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0), watchos(27.0))
+ - (instancetype)init NS_DESIGNATED_INITIALIZER
+ - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER
+ - (void)setBorderColor:(nullable UIColor *)color
+ - (void)setBorderColor:(nullable UIColor *)borderColor rectEdge:(CGRectEdge)rectEdge API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0), watchos(27.0))
+ - (void)setContentWidth:(CGFloat)contentWidth type:(NSTextBlockValueType)type
+ - (void)setValue:(CGFloat)value type:(NSTextBlockValueType)type forDimension:(NSTextBlockDimension)dimension
+ - (void)setWidth:(CGFloat)width type:(NSTextBlockValueType)type forLayer:(NSTextBlockLayer)layer
+ - (void)setWidth:(CGFloat)width type:(NSTextBlockValueType)type forLayer:(NSTextBlockLayer)layer rectEdge:(CGRectEdge)rectEdge API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0), watchos(27.0))
+ - (CGFloat)valueForDimension:(NSTextBlockDimension)dimension
+ - (NSTextBlockValueType)valueTypeForDimension:(NSTextBlockDimension)dimension
+ - (CGFloat)widthForLayer:(NSTextBlockLayer)layer rectEdge:(CGRectEdge)rectEdge API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0), watchos(27.0))
+ - (NSTextBlockValueType)widthValueTypeForLayer:(NSTextBlockLayer)layer rectEdge:(CGRectEdge)rectEdge API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0), watchos(27.0))

NSTextTable

@interface NSTextTable : NSTextBlock

+ @property (NS_NONATOMIC_IOSONLY) BOOL collapsesBorders
+ @property (NS_NONATOMIC_IOSONLY) BOOL hidesEmptyCells
+ @property (NS_NONATOMIC_IOSONLY) NSTextTableLayoutAlgorithm layoutAlgorithm
+ @property (NS_NONATOMIC_IOSONLY) NSInteger numberOfColumns

NSTextTableBlock

@interface NSTextTableBlock : NSTextBlock

+ @property (readonly, NS_NONATOMIC_IOSONLY) NSInteger columnSpan
+ @property (readonly, NS_NONATOMIC_IOSONLY) NSInteger rowSpan
+ @property (readonly, NS_NONATOMIC_IOSONLY) NSInteger startingColumn
+ @property (readonly, NS_NONATOMIC_IOSONLY) NSInteger startingRow
+ @property (readonly, strong, NS_NONATOMIC_IOSONLY) NSTextTable * table
+ - (nullable instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER
+ - (instancetype)initWithTable:(NSTextTable *)table startingRow:(NSInteger)row rowSpan:(NSInteger)rowSpan startingColumn:(NSInteger)column columnSpan:(NSInteger)columnSpan NS_DESIGNATED_INITIALIZER

UILookToScrollInteraction

@interface UILookToScrollInteraction : NSObject <UIInteraction>

+ + (instancetype)exclusionRegionInteraction
+ - (instancetype)init NS_UNAVAILABLE
+ + (instancetype)new NS_UNAVAILABLE

UISceneAccessory

@interface UISceneAccessory : NSObject

+ + (instancetype)externalNonInteractiveSceneAccessoryWithConfiguration:(UISceneConfiguration *)sceneConfiguration NS_SWIFT_NAME(externalNonInteractive(sceneConfiguration:))
+ + (instancetype)externalNonInteractiveSceneAccessoryWithConfiguration:(UISceneConfiguration *)sceneConfiguration userInfo:(id)userInfo NS_SWIFT_NAME(externalNonInteractive(sceneConfiguration:userInfo:))
+ - (instancetype)init NS_UNAVAILABLE

UISceneAccessoryRegistration

@interface UISceneAccessoryRegistration : NSObject

+ @property (nonatomic, readonly, getter=isAvailable) BOOL available
+ @property (nonatomic, readwrite, getter=isEnabled) BOOL enabled
+ - (instancetype)init NS_UNAVAILABLE

UISceneClosureConfirmation

@interface UISceneClosureConfirmation : NSObject<NSCopying, NSSecureCoding>

+ + (instancetype)confirmationWithTitle:(nullable NSString *)title message:(nullable NSString *)message actions:(NSArray<UIAlertAction *> *)actions
+ - (instancetype)init NS_UNAVAILABLE
+ + (instancetype)new NS_UNAVAILABLE

Removed Classes (0)

None.


Deprecated / Obsoleted Classes (2)

UIAcceleration — newly obsoleted

UIAcceleration has been replaced by the CoreMotion framework

UIAccelerometer — newly obsoleted

UIAcceleration has been replaced by the CoreMotion framework


Modified Classes

NSMutableParagraphStyle

+ @property (copy, NS_NONATOMIC_IOSONLY) NSArray<__kindof NSTextBlock *> *textBlocks API_AVAILABLE(macos(10.0), ios(6.0), tvos(9.0), visionos(1.0), watchos(2.0))

NSParagraphStyle

+ @property (readonly, copy, NS_NONATOMIC_IOSONLY) NSArray<__kindof NSTextBlock *> *textBlocks API_AVAILABLE(macos(10.0), ios(6.0), tvos(9.0), visionos(1.0), watchos(2.0))

NSShadow

- @property (nonatomic, assign) CGFloat shadowBlurRadius
+ @property (NS_NONATOMIC_IOSONLY) CGFloat shadowBlurRadius
- @property (nullable, nonatomic, strong) id shadowColor
+ @property (nullable, copy, NS_NONATOMIC_IOSONLY) id shadowColor
- @property (nonatomic, assign) CGSize shadowOffset
+ @property (NS_NONATOMIC_IOSONLY) CGSize shadowOffset

NSTextContainer

± declaration:
-   @interface NSTextContainer : NSObject <NSSecureCoding>
+   @interface NSTextContainer : NSObject <NSSecureCoding, NSTextLayoutOrientationProvider>

NSTextLayoutFragment

± declaration:
-   @interface NSTextLayoutFragment : NSObject <NSSecureCoding>
+   @interface NSTextLayoutFragment : NSObject <NSSecureCoding, NSTextViewportRenderingSurfaceKey>

UIApplication

~ - (UIInterfaceOrientationMask)supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window API_DEPRECATED("Use UIWindowSceneDelegate.supportedInterfaceOrientations(for:) instead", ios(6.0, 27.0)) API_UNAVAILABLE(tvos, visionos, watchos)

UIBarButtonItem

+ @property (nonatomic, readwrite, getter=isPaddingRemoved, setter=setPaddingRemoved:) BOOL paddingRemoved API_AVAILABLE(ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos)
+ @property (nonatomic, readwrite, assign) UIBarButtonItemVisibilityPriority visibilityPriority API_AVAILABLE(ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos)

UIContextMenuConfiguration

+ @property (nonatomic) BOOL allowsTypeSelect API_AVAILABLE(ios(27.0), visionos(27.0)) API_UNAVAILABLE(tvos)

UIDocumentViewControllerLaunchOptions

+ @property (nonatomic, copy, nullable) NSString *subtitle API_AVAILABLE(ios(27.0))

UIDragInteraction

+ @property (nonatomic, assign) BOOL allowsPointerDragBeforeLiftDelay API_AVAILABLE(ios(27.0))
+ @property (nonatomic, assign) UIDragLiftBehavior liftBehavior API_AVAILABLE(ios(27.0))
- @property (nonatomic) BOOL allowsSimultaneousRecognitionDuringLift
+ @property (nonatomic, assign) BOOL allowsSimultaneousRecognitionDuringLift

UIMenuElement

+ @property (nonatomic, copy, nullable) void (^highlightStateUpdateHandler)(UIMenuElement *element, BOOL isHighlighted) API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(watchos)
+ @property (nonatomic) UIMenuElementImageVisibility preferredImageVisibility API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(watchos)

UINavigationItem

+ @property (nonatomic, readwrite, assign) UIBarMinimizationSafeAreaAdjustment barMinimizationSafeAreaAdjustment API_AVAILABLE(ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos)
+ @property (nonatomic, readwrite, assign) UIBarMinimizeBehavior barMinimizeBehavior API_AVAILABLE(ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos)

UISceneConfiguration

+ - (instancetype)init
+ - (instancetype)initWithName:(nullable NSString *)name API_AVAILABLE(ios(27.0), macCatalyst(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos)

UISceneConnectionOptions

+ @property (nullable, nonatomic, strong, readonly) id sceneAccessoryUserInfo API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(macCatalyst, tvos, visionos, watchos)

UIScreen

~ - (nullable CADisplayLink *)displayLinkWithTarget:(id)target selector:(SEL)sel API_DEPRECATED("Use the equivalent display link API on UIWindowScene", ios(4.0, 27.0), tvos(9.0, 27.0), visionos(1.0, 27.0)) API_UNAVAILABLE(watchos)

UISearchTab

+ @property (class, nonatomic, copy, readonly) NSString *identifier API_AVAILABLE(ios(26.4), tvos(26.4), visionos(26.4))

UITab

+ @property (nonatomic, strong, nullable) UIImage *selectedImage API_AVAILABLE(ios(26.1), tvos(26.1), visionos(26.1)) API_UNAVAILABLE(watchos)

UITabBarController

+ - (void)performBatchUpdates:(void (NS_NOESCAPE ^)(void))updates API_AVAILABLE(ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos)
+ @property (nonatomic, copy, nullable) NSString *prominentTabIdentifier API_AVAILABLE(ios(27.0), visionos(27.0)) API_UNAVAILABLE(tvos, watchos)
+ - (void)setProminentTabIdentifier:(nullable NSString *)identifier animated:(BOOL)animated API_AVAILABLE(ios(27.0), visionos(27.0)) API_UNAVAILABLE(tvos, watchos)

UITabBarControllerSidebar

+ @property (nonatomic, assign, readonly) BOOL isAvailable API_AVAILABLE(ios(27.0), visionos(27.0)) API_UNAVAILABLE(tvos)
+ @property (nonatomic, assign) UITabBarControllerSidebarPlacement preferredPlacement API_AVAILABLE(ios(27.0), visionos(27.0)) API_UNAVAILABLE(tvos)

UITabGroup

+ @property (nonatomic, assign, getter=isCollapsedByDefault) BOOL collapsedByDefault API_AVAILABLE(ios(26.1), visionos(26.1)) API_UNAVAILABLE(tvos, watchos)

UITextView

± declaration:
-   @interface UITextView : UIScrollView <UITextInput, UIContentSizeCategoryAdjusting, UILetterformAwareAdjusting>
+   @interface UITextView : UIScrollView <UITextInput, UIContentSizeCategoryAdjusting, UILetterformAwareAdjusting, NSTextViewportLayoutControllerDelegate>
+ - (void)registerTextAttachmentViewProviderReusePolicy:(UITextAttachmentViewProviderReusePolicy)policy forTextAttachmentViewProviderType:(Class)viewProviderType API_AVAILABLE(ios(27.0),tvos(27.0),visionos(27.0)) API_UNAVAILABLE(watchos)
+ - (void)textViewportLayoutController:(NSTextViewportLayoutController *)textViewportLayoutController configureRenderingSurfaceForTextLayoutFragment:(NSTextLayoutFragment *)textLayoutFragment API_AVAILABLE(ios(27.0),tvos(27.0),visionos(27.0)) API_UNAVAILABLE(watchos) NS_REQUIRES_SUPER
+ - (void)textViewportLayoutControllerDidLayout:(NSTextViewportLayoutController *)textViewportLayoutController API_AVAILABLE(ios(27.0),tvos(27.0),visionos(27.0)) API_UNAVAILABLE(watchos) NS_REQUIRES_SUPER
+ - (void)textViewportLayoutControllerReceivedSetNeedsLayout:(NSTextViewportLayoutController *)textViewportLayoutController API_AVAILABLE(ios(27.0),tvos(27.0),visionos(27.0)) API_UNAVAILABLE(watchos) NS_REQUIRES_SUPER
+ - (void)textViewportLayoutControllerWillLayout:(NSTextViewportLayoutController *)textViewportLayoutController API_AVAILABLE(ios(27.0),tvos(27.0),visionos(27.0)) API_UNAVAILABLE(watchos) NS_REQUIRES_SUPER
+ - (CGRect)viewportBoundsForTextViewportLayoutController:(NSTextViewportLayoutController *)textViewportLayoutController API_AVAILABLE(ios(27.0),tvos(27.0),visionos(27.0)) API_UNAVAILABLE(watchos) NS_REQUIRES_SUPER

UIViewController

+ - (UISceneAccessoryRegistration *)registerSceneAccessory:(UISceneAccessory *)accessory API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(macCatalyst, tvos, visionos, watchos) NS_SWIFT_NAME(registerSceneAccessory(_:))
+ - (void)unregisterSceneAccessory:(UISceneAccessoryRegistration *)registration API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(macCatalyst, tvos, visionos, watchos) NS_SWIFT_NAME(unregisterSceneAccessory(_:))

UIWindowScene

+ @property (nonatomic, copy, nullable) UISceneClosureConfirmation *closureConfirmation API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(tvos, watchos, visionos)
+ - (nullable CADisplayLink *)displayLinkWithTarget:(id)target selector:(SEL)sel NS_SWIFT_NAME(displayLink(target:selector:)) API_AVAILABLE(ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos)

(23 classes/categories modified)


Protocols

New protocols (2)

NSTextViewportRenderingSurface

@protocol NSTextViewportRenderingSurface <NSObject>

NSTextViewportRenderingSurfaceKey

@protocol NSTextViewportRenderingSurfaceKey <NSObject>

Removed protocols (0)

None.

Modified protocols

NSTextLayoutManagerDelegate

+ - (void)textLayoutManager:(NSTextLayoutManager *)textLayoutManager cacheTextAttachmentViewProvider:(NSTextAttachmentViewProvider *)viewProvider forTextAttachment:(NSTextAttachment *)textAttachment API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos)
+ - (nullable NSTextAttachmentViewProvider *)textLayoutManager:(NSTextLayoutManager *)textLayoutManager retrieveCachedTextAttachmentViewProviderForTextAttachment:(NSTextAttachment *)attachment API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos)
+ - (nullable NSTextViewportLayoutController *)textLayoutManager:(NSTextLayoutManager *)textLayoutManager textViewportLayoutControllerForTextContainer:(NSTextContainer *)textContainer API_AVAILABLE(macos(14.0), ios(17.0), tvos(17.0), visionos(1.0)) API_UNAVAILABLE(watchos)

NSTextLocation

+ @property (readonly) NSUInteger hash
+ - (BOOL)isEqual:(nullable id)location

NSTextViewportLayoutControllerDelegate

+ - (void)textViewportLayoutController:(NSTextViewportLayoutController *)textViewportLayoutController cacheRenderingSurface:(id<NSTextViewportRenderingSurface>)renderingSurface forKey:(id<NSTextViewportRenderingSurfaceKey>)renderingSurfaceKey
+ - (id<NSTextViewportRenderingSurface>)textViewportLayoutController:(NSTextViewportLayoutController *)textViewportLayoutController retrieveCachedRenderingSurfaceForKey:(id<NSTextViewportRenderingSurfaceKey>)renderingSurfaceKey
+ - (void)textViewportLayoutControllerReceivedSetNeedsLayout:(NSTextViewportLayoutController *)textViewportLayoutController

UIApplicationDelegate

~ - (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window API_DEPRECATED("Use UIWindowSceneDelegate.supportedInterfaceOrientations(for:) instead", ios(6.0, 27.0)) API_UNAVAILABLE(tvos, visionos, watchos)

UIMenuLeaf

+ @property (nonatomic) UIMenuElementImageVisibility preferredImageVisibility API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(watchos)
+ @property (nullable, nonatomic, copy) NSString *subtitle

UITabBarControllerSidebarDelegate

+ - (void)tabBarController:(UITabBarController *)tabBarController sidebarVisibilityWillChange:(UITabBarControllerSidebar *)sidebar animator:(id<UITabBarControllerSidebarAnimating>)animator

UITextInput

+ @property (nonatomic, readonly) CGRect unobscuredContentRect API_AVAILABLE(ios(26.4), tvos(26.4), visionos(26.4), watchos(26.4), macos(26.4))

UIWindowSceneDelegate

+ - (UIInterfaceOrientationMask)supportedInterfaceOrientationsForWindowScene:(UIWindowScene *)windowScene API_AVAILABLE(ios(27.0), visionos(27.0)) API_UNAVAILABLE(tvos, watchos)

Enumerations / Option sets

Added (11)

+ typedef NS_ENUM(NSInteger, NSTextBlockDimension)
+ typedef NS_ENUM(NSInteger, NSTextBlockLayer)
+ typedef NS_ENUM(NSInteger, NSTextBlockValueType)
+ typedef NS_ENUM(NSInteger, NSTextBlockVerticalAlignment)
+ typedef NS_ENUM(NSInteger, NSTextTableLayoutAlgorithm)
+ typedef NS_ENUM(NSInteger, UIBarMinimizationSafeAreaAdjustment)
+ typedef NS_ENUM(NSInteger, UIBarMinimizeBehavior)
+ typedef NS_ENUM(NSUInteger, UIDragLiftBehavior)
+ typedef NS_ENUM(NSInteger, UIMenuElementImageVisibility)
+ typedef NS_ENUM(NSInteger, UITabBarControllerSidebarPlacement)
+ typedef NS_OPTIONS(NSUInteger, UITextAttachmentViewProviderReusePolicy)

Removed (0)

None.

Typedefs

Added (1)

+ UIBarButtonItemVisibilityPriority

Removed (0)

None.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment