Mac Developer Library

Developer

AppKit Framework Reference NSText Class Reference

Options
Deployment Target:

On This Page
Language:

NSText

Class at a Glance

NSText declares the most general programmatic interface for objects that manage text. You usually use instances of its subclass, NSTextView.

NSText declares the most general programmatic interface for objects that manage text. You usually use instances of its subclass, NSTextView.

NSTextView extends the interface declared by NSText and provides much more sophisticated functionality than that declared in NSText.

NSText initialization creates an instance of a concrete subclass, such as NSTextView. Instances of any of these classes are generically called text objects.

Text objects are used by the Application Kit wherever text appears in interface objects: A text object draws the title of a window, the commands in a menu, the title of a button, and the items in a browser. Your application can also create text objects for its own purposes.

  • The characters of the receiver’s text.

    Declaration

    Swift

    var string: String?

    Objective-C

    @property(copy) NSString *string

    Discussion

    For performance reasons, this value is the current backing store of the text object. If you want to maintain a snapshot of this as you manipulate the text storage, you should make a copy of the appropriate substring.

    Availability

    Available in OS X v10.0 and later.

  • The receiver’s background color to a given color.

    Declaration

    Swift

    @NSCopying var backgroundColor: NSColor?

    Objective-C

    @property(copy) NSColor *backgroundColor

    Availability

    Available in OS X v10.0 and later.

    See Also

    drawsBackground

  • A Boolean that controls whether the receiver draws its background.

    Declaration

    Swift

    var drawsBackground: Bool

    Objective-C

    @property BOOL drawsBackground

    Discussion

    If flag is YEStrue, the receiver fills its background with the background color, if flag is NOfalse, it doesn’t.

    Availability

    Available in OS X v10.0 and later.

    See Also

    backgroundColor

  • A Boolean that controls whether the receiver allows the user to edit its text.

    Declaration

    Swift

    var editable: Bool

    Objective-C

    @property(getter=isEditable) BOOL editable

    Discussion

    If flag is YEStrue, the receiver allows the user to edit text and attributes; if flag is NOfalse, it doesn’t.

    You can change the receiver’s text programmatically regardless of this setting. If the receiver is made editable, it’s also made selectable. NSText objects are by default editable.

    Availability

    Available in OS X v10.0 and later.

    See Also

    selectable

  • A Boolean that controls whether the receiver allows the user to select its text.

    Declaration

    Swift

    var selectable: Bool

    Objective-C

    @property(getter=isSelectable) BOOL selectable

    Discussion

    If flag is YEStrue, the receiver allows the user to select text; if flag is NOfalse, it doesn’t.

    You can set selections programmatically regardless of this setting. If the receiver is made not selectable, it’s also made not editable. NSText objects are by default editable and selectable.

    Availability

    Available in OS X v10.0 and later.

    See Also

    editable

  • A Boolean that controls whether the receiver interprets Tab, Shift-Tab, and Return (Enter) as cues to end editing and possibly to change the first responder.

    Declaration

    Swift

    var fieldEditor: Bool

    Objective-C

    @property(getter=isFieldEditor) BOOL fieldEditor

    Discussion

    If flag is YEStrue, the receiver interprets Tab, Shift-Tab, and Return (Enter) as cues to end editing and possibly to change the first responder; if flag is NOfalse, it doesn’t, instead accepting these characters as text input.

    See the NSWindow class specification for more information on field editors. By default, NSText objects don’t behave as field editors.

    Availability

    Available in OS X v10.0 and later.

  • A Boolean that controls whether the receiver allows the user to apply attributes to specific ranges of the text.

    Declaration

    Swift

    var richText: Bool

    Objective-C

    @property(getter=isRichText) BOOL richText

    Discussion

    If flag is YEStrue the receiver allows the user to apply attributes to specific ranges of the text; if flag is NOfalse it doesn’t.

    Availability

    Available in OS X v10.0 and later.

    See Also

    importsGraphics

  • A Boolean that controls whether the receiver allows the user to import files by dragging.

    Declaration

    Swift

    var importsGraphics: Bool

    Objective-C

    @property BOOL importsGraphics

    Discussion

    If flag is YEStrue, the receiver allows the user to import files by dragging; if flag is NOfalse, it doesn’t.

    If the receiver is set to accept dragged files, it’s also made a rich text object. Subclasses may or may not accept dragged files by default.

    Availability

    Available in OS X v10.0 and later.

    See Also

    richText

  • A Boolean that controls whether the receiver uses the Font panel and Font menu.

    Declaration

    Swift

    var usesFontPanel: Bool

    Objective-C

    @property BOOL usesFontPanel

    Discussion

    If flag is YEStrue, the receiver responds to messages from the Font panel and from the Font menu and updates the Font panel with the selection font whenever it changes. If flag is NOfalse the receiver doesn’t do any of these actions.

    Availability

    Available in OS X v10.0 and later.

  • This action method shows or hides the ruler, if the receiver is enclosed in a scroll view.

    Declaration

    Swift

    func toggleRuler(_ sender: AnyObject?)

    Objective-C

    - (void)toggleRuler:(id)sender

    Availability

    Available in OS X v10.0 and later.

  • A Boolean value that indicates whether the receiver’s enclosing scroll view shows its ruler. (read-only)

    Declaration

    Swift

    var rulerVisible: Bool { get }

    Objective-C

    @property(getter=isRulerVisible, readonly) BOOL rulerVisible

    Discussion

    YEStrue if the receiver’s enclosing scroll view shows its ruler, otherwise NOfalse.

    Availability

    Available in OS X v10.0 and later.

  • This action method selects all of the receiver’s text.

    Declaration

    Swift

    func selectAll(_ sender: AnyObject?)

    Objective-C

    - (void)selectAll:(id)sender

    Availability

    Available in OS X v10.0 and later.

  • This action method copies the selected text onto the general pasteboard, in as many formats as the receiver supports.

    Declaration

    Swift

    func copy(_ sender: AnyObject?)

    Objective-C

    - (void)copy:(id)sender

    Discussion

    A plain text object uses NSStringPboardType for plain text, and a rich text object also uses NSRTFPboardType.

    Availability

    Available in OS X v10.0 and later.

  • This action method deletes the selected text and places it onto the general pasteboard, in as many formats as the receiver supports.

    Declaration

    Swift

    func cut(_ sender: AnyObject?)

    Objective-C

    - (void)cut:(id)sender

    Discussion

    A plain text object uses NSStringPboardType for plain text, and a rich text object also uses NSRTFPboardType.

    Availability

    Available in OS X v10.0 and later.

  • This action method pastes text from the general pasteboard at the insertion point or over the selection.

    Declaration

    Swift

    func paste(_ sender: AnyObject?)

    Objective-C

    - (void)paste:(id)sender

    Availability

    Available in OS X v10.0 and later.

  • This action method copies the font information for the first character of the selection (or for the insertion point) onto the font pasteboard, as NSFontPboardType.

    Declaration

    Swift

    func copyFont(_ sender: AnyObject?)

    Objective-C

    - (void)copyFont:(id)sender

    Availability

    Available in OS X v10.0 and later.

  • This action method pastes font information from the font pasteboard onto the selected text or insertion point of a rich text object, or over all text of a plain text object.

    Declaration

    Swift

    func pasteFont(_ sender: AnyObject?)

    Objective-C

    - (void)pasteFont:(id)sender

    Availability

    Available in OS X v10.0 and later.

  • This action method copies the paragraph style information for first selected paragraph onto the ruler pasteboard, as NSRulerPboardType, and expands the selection to paragraph boundaries.

    Declaration

    Swift

    func copyRuler(_ sender: AnyObject?)

    Objective-C

    - (void)copyRuler:(id)sender

    Availability

    Available in OS X v10.0 and later.

  • This action method pastes paragraph style information from the ruler pasteboard onto the selected paragraphs of a rich text object.

    Declaration

    Swift

    func pasteRuler(_ sender: AnyObject?)

    Objective-C

    - (void)pasteRuler:(id)sender

    Discussion

    It doesn’t apply to a plain text object.

    Availability

    Available in OS X v10.0 and later.

  • This action method deletes the selected text.

    Declaration

    Swift

    func delete(_ sender: AnyObject?)

    Objective-C

    - (void)delete:(id)sender

    Availability

    Available in OS X v10.0 and later.

    See Also

    – cut:

  • This action method changes the font of the selection for a rich text object, or of all text for a plain text object.

    Declaration

    Swift

    func changeFont(_ sender: AnyObject?)

    Objective-C

    - (void)changeFont:(id)sender

    Discussion

    If the receiver doesn’t use the Font panel, this method does nothing.

    This method changes the font by sending a convertFont: message to the shared NSFontManager and applying each NSFont returned to the appropriate text. See the NSFontManager class specification for more information on font conversion.

    Availability

    Available in OS X v10.0 and later.

    See Also

    usesFontPanel

  • font font Property

    The font of all the receiver’s text.

    Declaration

    Swift

    var font: NSFont?

    Objective-C

    @property(strong) NSFont *font

    Availability

    Available in OS X v10.0 and later.

  • Sets the font of characters within aRange to aFont.

    Declaration

    Swift

    func setFont(_ font: NSFont, range range: NSRange)

    Objective-C

    - (void)setFont:(NSFont *)font range:(NSRange)range

    Discussion

    This method applies only to a rich text object.

    This method does not include undo support by default. Clients must invoke shouldChangeTextInRanges:replacementStrings: or shouldChangeTextInRange:replacementString: to include this method in an undoable action.

    Availability

    Available in OS X v10.0 and later.

    See Also

    font

  • The initial writing direction used to determine the actual writing direction for text.

    Declaration

    Swift

    var baseWritingDirection: NSWritingDirection

    Objective-C

    @property NSWritingDirection baseWritingDirection

    Discussion

    The Text system uses this value as a hint for calculating the actual direction for displaying Unicode characters. If no writing direction is set, returns NSWritingDirectionNatural.

    Availability

    Available in OS X v10.4 and later.

  • Adds the underline attribute to the selected text attributes if absent; removes the attribute if present.

    Declaration

    Swift

    func underline(_ sender: AnyObject?)

    Objective-C

    - (void)underline:(id)sender

    Discussion

    If there is a selection and the first character of the selected range has any form of underline on it, or if there is no selection and the typing attributes have any form of underline, then underline is removed; otherwise a single simple underline is added.

    Operates on the selected range if the receiver contains rich text. For plain text the range is the entire contents of the receiver.

    Availability

    Available in OS X v10.0 and later.

  • Attempts to read the RTFD file at path, returning YEStrue if successful and NOfalse if not.

    Declaration

    Swift

    func readRTFDFromFile(_ path: String) -> Bool

    Objective-C

    - (BOOL)readRTFDFromFile:(NSString *)path

    Discussion

    path should be the path for an .rtf file or an .rtfd file wrapper, not for the RTF file within an .rtfd file wrapper.

    Availability

    Available in OS X v10.0 and later.

  • Writes the receiver’s text as RTF with attachments to a file or directory at path.

    Declaration

    Swift

    func writeRTFDToFile(_ path: String, atomically flag: Bool) -> Bool

    Objective-C

    - (BOOL)writeRTFDToFile:(NSString *)path atomically:(BOOL)flag

    Discussion

    Returns YEStrue on success and NOfalse on failure. If atomicFlag is YEStrue, attempts to write the file safely so that an existing file at path is not overwritten, nor does a new file at path actually get created, unless the write is successful.

    Availability

    Available in OS X v10.0 and later.

  • Returns an NSData object that contains an RTFD stream corresponding to the characters and attributes within aRange.

    Declaration

    Swift

    func RTFDFromRange(_ range: NSRange) -> NSData?

    Objective-C

    - (NSData *)RTFDFromRange:(NSRange)range

    Discussion

    Raises an NSRangeException if any part of aRange lies beyond the end of the receiver’s characters.

    When writing data to the pasteboard, you can use the NSData object as the first argument to NSPasteboard's setData:forType: method, with a second argument of NSRTFDPboardType.

    Availability

    Available in OS X v10.0 and later.

  • Returns an NSData object that contains an RTF stream corresponding to the characters and attributes within aRange, omitting any attachment characters and attributes.

    Declaration

    Swift

    func RTFFromRange(_ range: NSRange) -> NSData?

    Objective-C

    - (NSData *)RTFFromRange:(NSRange)range

    Discussion

    Raises an NSRangeException if any part of aRange lies beyond the end of the receiver’s characters.

    When writing data to the pasteboard, you can use the NSData object as the first argument to NSPasteboard's setData:forType: method, with a second argument of NSRTFPboardType.

    Availability

    Available in OS X v10.0 and later.

  • This action method searches for a misspelled word in the receiver’s text.

    Declaration

    Swift

    func checkSpelling(_ sender: AnyObject?)

    Objective-C

    - (void)checkSpelling:(id)sender

    Discussion

    The search starts at the end of the selection and continues until it reaches a word suspected of being misspelled or the end of the text. If a word isn’t recognized by the spelling server, a showGuessPanel: message then opens the Guess panel and allows the user to make a correction or add the word to the local dictionary.

    Availability

    Available in OS X v10.0 and later.

  • This action method opens the Spelling panel, allowing the user to make a correction during spell checking.

    Declaration

    Swift

    func showGuessPanel(_ sender: AnyObject?)

    Objective-C

    - (void)showGuessPanel:(id)sender

    Availability

    Available in OS X v10.0 and later.

  • The receiver’s maximum size.

    Declaration

    Swift

    var maxSize: NSSize

    Objective-C

    @property NSSize maxSize

    Availability

    Available in OS X v10.0 and later.

    See Also

    minSize

  • The receiver’s minimum size.

    Declaration

    Swift

    var minSize: NSSize

    Objective-C

    @property NSSize minSize

    Availability

    Available in OS X v10.0 and later.

    See Also

    maxSize

  • A boolean that controls whether the receiver changes its height to fit the height of its text.

    Declaration

    Swift

    var verticallyResizable: Bool

    Objective-C

    @property(getter=isVerticallyResizable) BOOL verticallyResizable

    Discussion

    If flag is YEStrue it does; if flag is NOfalse it doesn’t.

    Availability

    Available in OS X v10.0 and later.

  • A Boolean that controls whether the receiver changes its width to fit the width of its text.

    Declaration

    Swift

    var horizontallyResizable: Bool

    Objective-C

    @property(getter=isHorizontallyResizable) BOOL horizontallyResizable

    Discussion

    If flag is YEStrue it does; if flag is NOfalse it doesn’t

    Availability

    Available in OS X v10.0 and later.

  • Resizes the receiver to fit its text.

    Declaration

    Swift

    func sizeToFit()

    Objective-C

    - (void)sizeToFit

    Discussion

    The text view will not be sized any smaller than its minimum size, however.

    Availability

    Available in OS X v10.0 and later.

  • These constants specify text alignment.

    Declaration

    Swift

    enum NSTextAlignment : UInt { case Left case Right case Center case Justified case Natural }

    Objective-C

    typedef enum _NSTextAlignment { NSTextAlignmentLeft = 0, NSTextAlignmentRight = 1, NSTextAlignmentCenter = 2, NSTextAlignmentJustified = 3, NSTextAlignmentNatural = 4 } NSTextAlignment;

    Constants

    • Left

      NSTextAlignmentLeft

      Text is visually left aligned.

      Available in OS X v10.11 and later.

    • Right

      NSTextAlignmentRight

      Text is visually right aligned.

      Available in OS X v10.11 and later.

    • Center

      NSTextAlignmentCenter

      Text is visually center aligned.

      Available in OS X v10.11 and later.

    • Justified

      NSTextAlignmentJustified

      Text is justified.

      Available in OS X v10.11 and later.

    • Natural

      NSTextAlignmentNatural

      Use the default alignment associated with the current localization of the app. The default alignment for left-to-right scripts is NSTextAlignmentLeft, and the default alignment for right-to-left scripts is NSTextAlignmentRight.

      Available in OS X v10.11 and later.

    Import Statement

    Objective-C

    @import AppKit;

    Swift

    import AppKit

    Availability

    Available in OS X v10.0 and later.

  • These constants specify the writing directions:

    Declaration

    Swift

    enum NSWritingDirection : Int { case Natural case LeftToRight case RightToLeft }

    Objective-C

    enum { NSWritingDirectionNatural = -1, NSWritingDirectionLeftToRight = 0, NSWritingDirectionRightToLeft }; typedef NSInteger NSWritingDirection;

    Constants

    • Natural

      NSWritingDirectionNatural

      The writing direction is determined using the Unicode Bidi Algorithm rules P2 and P3. Default.

      Available in OS X v10.4 and later.

    • LeftToRight

      NSWritingDirectionLeftToRight

      The writing direction is left to right.

      Available in OS X v10.2 and later.

    • RightToLeft

      NSWritingDirectionRightToLeft

      The writing direction is right to left.

      Available in OS X v10.2 and later.

    Import Statement

    Objective-C

    @import AppKit;

    Swift

    import AppKit

    Availability

    Available in OS X v10.2 and later.

  • Declaration

    Swift

    var NSTextWritingDirectionEmbedding: Int { get } var NSTextWritingDirectionOverride: Int { get }

    Objective-C

    enum { NSTextWritingDirectionEmbedding = (0 << 1), NSTextWritingDirectionOverride = (1 << 1) };

    Constants

    • NSTextWritingDirectionEmbedding

      NSTextWritingDirectionEmbedding

      Text is embedded in text with another writing direction. For example, an English quotation in the middle of a right-to-left Arabic sentence could be marked as being embedded left-to-right text.

      Available in OS X v10.0 and later.

      Deprecated in OS X v10.11.

    • NSTextWritingDirectionOverride

      NSTextWritingDirectionOverride

      Enables character types with inherent directionality to be overridden when required for special cases, such as for part numbers made of mixed English, digits, and Hebrew letters to be written from right to left.

      Available in OS X v10.0 and later.

      Deprecated in OS X v10.11.

    Discussion

    You can use the logical OR operator to combine these constants with NSWritingDirectionLeftToRight or NSWritingDirectionRightToLeft when used with NSWritingDirectionAttributeName to specify formatting controls defined by the Unicode Bidirectional Algorithm in Unicode Standard Annex #9.

  • These constants specify the reason for a change of editing focus among text fields, in essence answering the question “why am I leaving the field?”

    Declaration

    Swift

    var NSIllegalTextMovement: Int { get } var NSReturnTextMovement: Int { get } var NSTabTextMovement: Int { get } var NSBacktabTextMovement: Int { get } var NSLeftTextMovement: Int { get } var NSRightTextMovement: Int { get } var NSUpTextMovement: Int { get } var NSDownTextMovement: Int { get } var NSCancelTextMovement: Int { get } var NSOtherTextMovement: Int { get }

    Objective-C

    enum { NSIllegalTextMovement = 0, NSReturnTextMovement = 0x10, NSTabTextMovement = 0x11, NSBacktabTextMovement = 0x12, NSLeftTextMovement = 0x13, NSRightTextMovement = 0x14, NSUpTextMovement = 0x15, NSDownTextMovement = 0x16, NSCancelTextMovement = 0x17, NSOtherTextMovement = 0 };

    Constants

    • NSIllegalTextMovement

      NSIllegalTextMovement

      Currently unused.

      Available in OS X v10.0 and later.

    • NSReturnTextMovement

      NSReturnTextMovement

      The Return key was pressed.

      Available in OS X v10.0 and later.

    • NSTabTextMovement

      NSTabTextMovement

      The Tab key was pressed.

      Available in OS X v10.0 and later.

    • NSBacktabTextMovement

      NSBacktabTextMovement

      The Backtab (Shift-Tab) key was pressed.

      Available in OS X v10.0 and later.

    • NSLeftTextMovement

      NSLeftTextMovement

      The left arrow key was pressed.

      Available in OS X v10.0 and later.

    • NSRightTextMovement

      NSRightTextMovement

      The right arrow key was pressed.

      Available in OS X v10.0 and later.

    • NSUpTextMovement

      NSUpTextMovement

      The up arrow key was pressed.

      Available in OS X v10.0 and later.

    • NSDownTextMovement

      NSDownTextMovement

      The down arrow key was pressed.

      Available in OS X v10.0 and later.

    • NSCancelTextMovement

      NSCancelTextMovement

      The user cancelled the completion.

      Available in OS X v10.3 and later.

    • NSOtherTextMovement

      NSOtherTextMovement

      The user performed some undefined action.

      Available in OS X v10.3 and later.

    Discussion

    They are the possible values for the NSTextMovement key of the NSTextDidEndEditingNotificationuserInfo dictionary. The field editor makes sure that these are the values sent when the user presses the Tab, Backtab, or Return key while editing. The control then uses this information to decide where to send focus next.

  • These constants specify several commonly used Unicode characters.

    Declaration

    Swift

    var NSParagraphSeparatorCharacter: Int { get } var NSLineSeparatorCharacter: Int { get } var NSTabCharacter: Int { get } var NSBackTabCharacter: Int { get } var NSFormFeedCharacter: Int { get } var NSNewlineCharacter: Int { get } var NSCarriageReturnCharacter: Int { get } var NSEnterCharacter: Int { get } var NSBackspaceCharacter: Int { get } var NSDeleteCharacter: Int { get }

    Objective-C

    enum { NSParagraphSeparatorCharacter = 0x2029, NSLineSeparatorCharacter = 0x2028, NSTabCharacter = 0x0009, NSFormFeedCharacter = 0x000c, NSNewlineCharacter = 0x000a, NSCarriageReturnCharacter = 0x000d, NSEnterCharacter = 0x0003, NSBackspaceCharacter = 0x0008, NSBackTabCharacter = 0x0019, NSDeleteCharacter = 0x007f };

    Constants

    • NSParagraphSeparatorCharacter

      NSParagraphSeparatorCharacter

      The paragraph separator character: 0x2029

      Available in OS X v10.0 and later.

    • NSLineSeparatorCharacter

      NSLineSeparatorCharacter

      The line separator character: 0x2028

      Available in OS X v10.0 and later.

    • NSTabCharacter

      NSTabCharacter

      The tab character: 0x0009

      Available in OS X v10.0 and later.

    • NSBackTabCharacter

      NSBackTabCharacter

      The back tab character: 0x0019

      Available in OS X v10.0 and later.

    • NSFormFeedCharacter

      NSFormFeedCharacter

      The form feed character: 0x000c

      Available in OS X v10.0 and later.

    • NSNewlineCharacter

      NSNewlineCharacter

      The newline character: 0x000a

      Available in OS X v10.0 and later.

    • NSCarriageReturnCharacter

      NSCarriageReturnCharacter

      The carriage return character: 0x000d

      Available in OS X v10.0 and later.

    • NSEnterCharacter

      NSEnterCharacter

      The enter character: 0x0003

      Available in OS X v10.0 and later.

    • NSBackspaceCharacter

      NSBackspaceCharacter

      The backspace character: 0x0008

      Available in OS X v10.0 and later.

    • NSDeleteCharacter

      NSDeleteCharacter

      The delete character: 0x007f

      Available in OS X v10.0 and later.

  • Posted when an NSText object begins any operation that changes characters or formatting attributes.

    The notification object is the notifying NSText object. This notification does not contain a userInfo dictionary.

    Declaration

    Swift

    let NSTextDidBeginEditingNotification: String

    Import Statement

    Objective-C

    @import AppKit;

    Swift

    import AppKit

    Availability

    Available in OS X v10.0 and later.

  • Posted after an NSText object performs any operation that changes characters or formatting attributes.

    The notification object is the notifying NSText object. This notification does not contain a userInfo dictionary.

    Declaration

    Swift

    let NSTextDidChangeNotification: String

    Import Statement

    Objective-C

    @import AppKit;

    Swift

    import AppKit

    Availability

    Available in OS X v10.0 and later.

  • Posted when focus leaves an NSText object, whether or not any operation has changed characters or formatting attributes.

    The notification object is the notifying NSText object. The userInfo dictionary contains the following information:

    Key

    Value

    @"NSTextMovement"

    Possible movement code values are described in Movement Codes.

    Declaration

    Swift

    let NSTextDidEndEditingNotification: String

    Import Statement

    Objective-C

    @import AppKit;

    Swift

    import AppKit

    Availability

    Available in OS X v10.0 and later.