Mac Developer Library

Developer

AppKit Framework Reference NSLayoutManagerDelegate Protocol Reference

Options
Deployment Target:

On This Page
Language:

NSLayoutManagerDelegate

The NSLayoutManagerDelegate protocol defines the optional methods implemented by delegates of NSLayoutManager objects.

Inheritance


Not Applicable

Import Statement


Swift

import AppKit

Objective-C

@import AppKit;

Availability


Available in OS X v10.6 and later.
  • Informs the delegate that the given layout manager has invalidated layout information (not glyph information).

    Declaration

    Swift

    optional func layoutManagerDidInvalidateLayout(_ sender: NSLayoutManager)

    Objective-C

    - (void)layoutManagerDidInvalidateLayout:(NSLayoutManager *)sender

    Parameters

    sender

    The layout manager that invalidated layout.

    Discussion

    This method is invoked only when layout was complete and then became invalidated for some reason. Delegates can use this information to show an indicator of background layout or to enable a button that forces immediate layout of text.

    Import Statement

    Objective-C

    @import AppKit;

    Swift

    import AppKit

    Availability

    Available in OS X v10.0 and later.

    Available as part of an informal protocol prior to OS X v10.6.

  • Informs the delegate that the given layout manager has finished laying out text in the given text container.

    Declaration

    Swift

    optional func layoutManager(_ aLayoutManager: NSLayoutManager, didCompleteLayoutForTextContainer aTextContainer: NSTextContainer?, atEnd flag: Bool)

    Objective-C

    - (void)layoutManager:(NSLayoutManager *)aLayoutManager didCompleteLayoutForTextContainer:(NSTextContainer *)aTextContainer atEnd:(BOOL)flag

    Parameters

    aLayoutManager

    The layout manager doing the layout.

    aTextContainer

    The text container in which layout is complete. If nil, if there aren’t enough containers to hold all the text; the delegate can use this information as a cue to add another text container.

    flag

    If YEStrue, aLayoutManager is finished laying out its text—this also means that aTextContainer is the final text container used by the layout manager. Delegates can use this information to show an indicator or background or to enable or disable a button that forces immediate layout of text.

    Discussion

    This message is sent whenever a text container has been filled. This method can be useful for paginating.

    Import Statement

    Objective-C

    @import AppKit;

    Swift

    import AppKit

    Availability

    Available in OS X v10.0 and later.

    Available as part of an informal protocol prior to OS X v10.6.

  • Sent when the layout manager is drawing and needs to decide whether or not to use temporary attributes.

    Declaration

    Swift

    optional func layoutManager(_ layoutManager: NSLayoutManager, shouldUseTemporaryAttributes attrs: [NSObject : AnyObject], forDrawingToScreen toScreen: Bool, atCharacterIndex charIndex: Int, effectiveRange effectiveCharRange: NSRangePointer) -> [NSObject : AnyObject]?

    Objective-C

    - (NSDictionary *)layoutManager:(NSLayoutManager *)layoutManager shouldUseTemporaryAttributes:(NSDictionary *)attrs forDrawingToScreen:(BOOL)toScreen atCharacterIndex:(NSUInteger)charIndex effectiveRange:(NSRangePointer)effectiveCharRange

    Parameters

    layoutManager

    The layout manager sending the message.

    attrs

    The temporary attributes currently in effect for the given character range.

    toScreen

    YEStrue if the layout manager is drawing to the screen; otherwise, NOfalse.

    charIndex

    Index of the first character in the range being drawn.

    effectiveCharRange

    On input and output, the effective range to which the temporary attributes apply.

    Return Value

    The temporary attributes for the layout manager to use, or nil if no temporary attributes are to be used.

    Discussion

    The default behavior, if this method is not implemented, is to use temporary attributes only when drawing to the screen, so an implementation to match that behavior would return attrs if toScreen is YEStrue and nil otherwise, without changing effectiveCharRange.

    Import Statement

    Objective-C

    @import AppKit;

    Swift

    import AppKit

    Availability

    Available in OS X v10.5 and later.

    Available as part of an informal protocol prior to OS X v10.6.