Skip to content

AppKit macOS xcode13.0 beta3

Rachel Kang edited this page Oct 8, 2021 · 4 revisions

#AppKit.framework https://github.com/xamarin/xamarin-macios/pull/12936

diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.apinotes /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.apinotes
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.apinotes	2021-06-17 01:35:49.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.apinotes	2021-07-08 23:38:42.000000000 -0400
@@ -6025,6 +6025,11 @@
     SwiftName: "makeView(withIdentifier:owner:)"
 - Name: NSTableViewDiffableDataSource
   SwiftName: NSTableViewDiffableDataSourceReference
+- Name: NSTextAttachmentViewProvider
+  Methods:
+  - Selector: "attachmentBoundsForAttributes:location:textContainer:proposedLineFragment:position:"
+    MethodKind: Instance
+    SwiftName: attachmentBounds(for:location:textContainer:proposedLineFragment:position:)
 - Name: NSTextBlock
   Methods:
   - Selector: init
@@ -6103,7 +6108,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:)
@@ -6591,6 +6596,17 @@
   - Selector: "trackMouse:inRect:ofView:untilMouseUp:"
     MethodKind: Instance
     SwiftName: trackMouse(with:in:of:untilMouseUp:)
+- 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:"
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.h	2021-06-17 02:06:51.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/AppKit.h	2021-07-08 23:57:36.000000000 -0400
@@ -270,3 +270,4 @@
 #import <AppKit/NSTextLayoutManager.h>
 #import <AppKit/NSTextLineFragment.h>
 #import <AppKit/NSTextViewportLayoutController.h>
+#import <AppKit/NSTextAttachmentCell.h>
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTextAttachment.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTextAttachment.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTextAttachment.h	2021-06-17 14:33:13.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTextAttachment.h	2021-07-10 09:46:54.000000000 -0400
@@ -1,23 +1,31 @@
-#if !__has_include(<UIFoundation/NSTextAttachment.h>)
+#if (defined(USE_APPKIT_PUBLIC_HEADERS) && USE_APPKIT_PUBLIC_HEADERS) || !__has_include(<UIFoundation/NSTextAttachment.h>)
+#include <TargetConditionals.h>
+
+#if !TARGET_OS_IPHONE
 /*
         NSTextAttachment.h
-        Copyright (c) 1994-2019, Apple Inc.
+        Copyright (c) 1994-2021, Apple Inc.
         All rights reserved.
 */
 
-#import <Foundation/NSObject.h>
-#import <AppKit/NSCell.h>
+#import <Foundation/NSAttributedString.h>
+#import <AppKit/AppKitDefines.h>
+#import <CoreGraphics/CGGeometry.h>
 
 NS_ASSUME_NONNULL_BEGIN
-#if !TARGET_OS_IPHONE
 
 enum {
-    NSAttachmentCharacter API_AVAILABLE(macos(10.0), ios(7.0), watchos(2.0), tvos(9.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 NSImage;
+@class NSView;
+@class NSFileWrapper;
+@class NSTextAttachmentViewProvider;
+@class NSTextLayoutManager;
+@protocol NSTextLocation;
 @class NSTextAttachmentCell;
 @protocol NSTextAttachmentCell;
 
@@ -27,20 +35,33 @@
 // 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 NSImage *)imageForBounds:(NSRect)imageBounds textContainer:(nullable NSTextContainer *)textContainer characterIndex:(NSUInteger)charIndex  API_AVAILABLE(macos(10.11), ios(7.0), watchos(2.0), tvos(9.0));
+- (nullable NSImage *)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.
-- (NSRect)attachmentBoundsForTextContainer:(nullable NSTextContainer *)textContainer proposedLineFragment:(NSRect)lineFrag glyphPosition:(CGPoint)position characterIndex:(NSUInteger)charIndex API_AVAILABLE(macos(10.11), ios(7.0), watchos(2.0), tvos(9.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);
 
 @end
 
-API_AVAILABLE(macos(10.0), ios(7.0), watchos(2.0), tvos(9.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 NSImage *)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 NSView *)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), watchos(2.0), tvos(9.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);
 
 // Previous designated initializer on OS X. This method invokes -initWithData:ofType: with nil arguments, then, fills -fileWrapper property.
 - (instancetype)initWithFileWrapper:(nullable NSFileWrapper *)fileWrapper;
@@ -49,16 +70,16 @@
 /**************************** 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) NSData *contents API_AVAILABLE(macos(10.11), ios(7.0), watchos(2.0), tvos(9.0));
-@property (nullable, copy) NSString *fileType API_AVAILABLE(macos(10.11), ios(7.0), watchos(2.0), tvos(9.0));
+@property (nullable, copy) NSData *contents API_AVAILABLE(macos(10.11), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
+@property (nullable, copy) 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) NSImage *image API_AVAILABLE(macos(10.11), ios(7.0), watchos(2.0), tvos(9.0));
+@property (nullable, strong) NSImage *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 NSRect bounds API_AVAILABLE(macos(10.11), ios(7.0), watchos(2.0), tvos(9.0));
+@property CGRect bounds API_AVAILABLE(macos(10.11), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
 
 /**************************** Non-image contents properties ****************************/
 
@@ -68,47 +89,67 @@
 // The cell which handles user interaction. By default an instance of NSTextAttachmentCell is used.
 @property (nullable, strong) id <NSTextAttachmentCell> attachmentCell API_AVAILABLE(macos(10.0)) API_UNAVAILABLE(ios, watchos, tvos);
 
+#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), watchos(2.0), tvos(9.0));
++ (NSAttributedString *)attributedStringWithAttachment:(NSTextAttachment *)attachment API_AVAILABLE(macos(10.0), ios(7.0), tvos(9.0)) API_UNAVAILABLE(watchos);
 @end
 
-@interface NSMutableAttributedString (NSMutableAttributedStringAttachmentConveniences)
+API_AVAILABLE(macos(12.0), ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchos)
+@interface NSTextAttachmentViewProvider : NSObject
+- (instancetype)initWithTextAttachment:(NSTextAttachment *)textAttachment parentView:(nullable NSView *)parentView textLayoutManager:(nullable NSTextLayoutManager *)textLayoutManager location:(id <NSTextLocation>)location NS_DESIGNATED_INITIALIZER;
 
-- (void)updateAttachmentsFromPath:(NSString *)path;
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
 
-@end
+@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) NSView *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;
 
-// These are the only methods required of cells in text attachments... The default NSCell class implements most of these; the NSTextAttachmentCell class is a subclass which implements all and provides some additional functionality.
-@protocol NSTextAttachmentCell <NSObject>
-- (void)drawWithFrame:(NSRect)cellFrame inView:(nullable NSView *)controlView;
-- (BOOL)wantsToTrackMouse;
-- (void)highlight:(BOOL)flag withFrame:(NSRect)cellFrame inView:(nullable NSView *)controlView;
-- (BOOL)trackMouse:(NSEvent *)theEvent inRect:(NSRect)cellFrame ofView:(nullable NSView *)controlView untilMouseUp:(BOOL)flag;
-- (NSSize)cellSize;
-- (NSPoint)cellBaselineOffset;
-@property (nullable, assign) NSTextAttachment *attachment;
-
-// Sophisticated cells should implement these in addition to the simpler methods, above.  The class NSTextAttachmentCell implements them to simply call the simpler methods; more complex conformers should implement the simpler methods to call these.
-- (void)drawWithFrame:(NSRect)cellFrame inView:(nullable NSView *)controlView characterIndex:(NSUInteger)charIndex;
-- (void)drawWithFrame:(NSRect)cellFrame inView:(nullable NSView *)controlView characterIndex:(NSUInteger)charIndex layoutManager:(NSLayoutManager *)layoutManager;
-- (BOOL)wantsToTrackMouseForEvent:(NSEvent *)theEvent inRect:(NSRect)cellFrame ofView:(nullable NSView *)controlView atCharacterIndex:(NSUInteger)charIndex;
-- (BOOL)trackMouse:(NSEvent *)theEvent inRect:(NSRect)cellFrame ofView:(nullable NSView *)controlView atCharacterIndex:(NSUInteger)charIndex untilMouseUp:(BOOL)flag;
-- (NSRect)cellFrameForTextContainer:(NSTextContainer *)textContainer proposedLineFragment:(NSRect)lineFrag glyphPosition:(NSPoint)position characterIndex:(NSUInteger)charIndex;
+// 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
 
 
-// Simple class to provide basic attachment cell functionality. By default this class causes NSTextView to send out delegate messages when the attachment is clicked on or dragged.
-@interface NSTextAttachmentCell : NSCell <NSTextAttachmentCell>
+@interface NSMutableAttributedString (NSMutableAttributedStringAttachmentConveniences)
+
+- (void)updateAttachmentsFromPath:(NSString *)path;
 
 @end
 
 
 
-#endif // !TARGET_OS_IPHONE
 NS_ASSUME_NONNULL_END
+#endif // !TARGET_OS_IPHONE
 #else
 #import <UIFoundation/NSTextAttachment.h>
 #endif
+
+#import <AppKit/NSTextAttachmentCell.h>
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTextAttachmentCell.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTextAttachmentCell.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTextAttachmentCell.h	1969-12-31 19:00:00.000000000 -0500
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTextAttachmentCell.h	2021-07-08 23:57:40.000000000 -0400
@@ -0,0 +1,41 @@
+/*
+        NSTextAttachmentCell.h
+        Copyright (c) 2021, Apple Inc.
+        All rights reserved.
+*/
+
+#import <AppKit/NSCell.h>
+
+@class NSTextAttachment;
+@class NSLayoutManager;
+@class NSTextContainer;
+
+NS_ASSUME_NONNULL_BEGIN
+APPKIT_API_UNAVAILABLE_BEGIN_MACCATALYST
+
+// These are the only methods required of cells in text attachments... The default NSCell class implements most of these; the NSTextAttachmentCell class is a subclass which implements all and provides some additional functionality.
+API_UNAVAILABLE(macCatalyst)
+@protocol NSTextAttachmentCell <NSObject>
+- (void)drawWithFrame:(NSRect)cellFrame inView:(nullable NSView *)controlView;
+- (BOOL)wantsToTrackMouse;
+- (void)highlight:(BOOL)flag withFrame:(NSRect)cellFrame inView:(nullable NSView *)controlView;
+- (BOOL)trackMouse:(NSEvent *)theEvent inRect:(NSRect)cellFrame ofView:(nullable NSView *)controlView untilMouseUp:(BOOL)flag;
+- (NSSize)cellSize;
+- (NSPoint)cellBaselineOffset;
+@property (nullable, assign) NSTextAttachment *attachment;
+
+// Sophisticated cells should implement these in addition to the simpler methods, above.  The class NSTextAttachmentCell implements them to simply call the simpler methods; more complex conformers should implement the simpler methods to call these.
+- (void)drawWithFrame:(NSRect)cellFrame inView:(nullable NSView *)controlView characterIndex:(NSUInteger)charIndex;
+- (void)drawWithFrame:(NSRect)cellFrame inView:(nullable NSView *)controlView characterIndex:(NSUInteger)charIndex layoutManager:(NSLayoutManager *)layoutManager;
+- (BOOL)wantsToTrackMouseForEvent:(NSEvent *)theEvent inRect:(NSRect)cellFrame ofView:(nullable NSView *)controlView atCharacterIndex:(NSUInteger)charIndex;
+- (BOOL)trackMouse:(NSEvent *)theEvent inRect:(NSRect)cellFrame ofView:(nullable NSView *)controlView atCharacterIndex:(NSUInteger)charIndex untilMouseUp:(BOOL)flag;
+- (NSRect)cellFrameForTextContainer:(NSTextContainer *)textContainer proposedLineFragment:(NSRect)lineFrag glyphPosition:(NSPoint)position characterIndex:(NSUInteger)charIndex;
+@end
+
+
+// Simple class to provide basic attachment cell functionality. By default this class causes NSTextView to send out delegate messages when the attachment is clicked on or dragged.
+@interface NSTextAttachmentCell : NSCell <NSTextAttachmentCell>
+@end
+
+API_UNAVAILABLE_END
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTextView.h /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTextView.h
--- /Applications/Xcode_13.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTextView.h	2021-06-17 14:33:13.000000000 -0400
+++ /Applications/Xcode_13.0.0-beta3.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSTextView.h	2021-07-10 09:46:54.000000000 -0400
@@ -105,10 +105,10 @@
 @property (nullable, readonly, assign) NSTextStorage *textStorage;
 
 // The text views's text layout manager, if its text container is configured with one; null otherwise.
-@property (nullable, readonly, assign) NSTextLayoutManager *textLayoutManager API_AVAILABLE(macos(12.0));
+@property (nullable, readonly, weak) NSTextLayoutManager *textLayoutManager API_AVAILABLE(macos(12.0));
 
 // The text view's text layout storage, if its text container is configured with one; null otherwise.
-@property (nullable, readonly, assign) NSTextContentStorage *textContentStorage API_AVAILABLE(macos(12.0));
+@property (nullable, readonly, weak) NSTextContentStorage *textContentStorage API_AVAILABLE(macos(12.0));
 
 /************************* Key binding entry-point *************************/
 
Clone this wiki locally