Adopted by | |
Framework | /System/Library/Frameworks/AppKit.framework |
Availability | Available in Mac OS X v10.0 and later. |
Declared in | NSInputManager.h |
Companion guides |
The NSTextInput
protocol defines the methods that Cocoa text views must implement in order to interact properly with the text input management system. NSTextView
and its abstract superclass NSText
are the only classes included in Cocoa that implement NSTextInput
. To create another text view class, you can either subclass NSTextView
(and not NSText
, for historical reasons), or subclass NSView
and implement the NSTextInput
protocol.
Important: Methods specific to the NSTextInput
protocol are intended for dealing with text input and generally are not suitable for other purposes.
– hasMarkedText
– markedRange
– selectedRange
– setMarkedText:selectedRange:
– unmarkText
– validAttributesForMarkedText
Returns an attributed string derived from the given range in the receiver's text storage.
- (NSAttributedString *)attributedSubstringFromRange:(NSRange)theRange
The range in the text storage from which to create the returned string.
The string created from the given range.
This method allows input mangers to query any range in text storage.
An implementation of this method should be prepared for theRange to be out-of-bounds. For example, the InkWell text input service can ask for the contents of the text input client that extends beyond the document’s range. In this case, you should return the intersection of the document’s range and theRange. If the location of theRange is completely outside of the document’s range, return nil
.
NSInputManager.h
Returns the index of the character whose frame rectangle includes the given point.
- (NSUInteger)characterIndexForPoint:(NSPoint)thePoint
A point, in screen coordinates.
The character index, measured from the start of the receiver’s text storage, of the character containing the given point. Returns NSNotFound
if the cursor is not within a character.
NSInputManager.h
Returns a number used to identify the receiver’s context to the input server.
- (NSInteger)conversationIdentifier
The identifying number of the receiver.
Each text view within an application should return a unique identifier (typically its address). However, multiple text views sharing the same text storage must all return the same identifier.
NSInputManager.h
Invokes the given selector if possible.
- (void)doCommandBySelector:(SEL)aSelector
The selector to be invoked.
If aSelector cannot be invoked, then doCommandBySelector:
should not pass this message up the responder chain. NSResponder
also implements this method, and it does forward uninvokable commands up the responder chain, but a text view should not. A text view implementing the NSTextInput protocol inherits from NSView
, which inherits from NSResponder
, so your implementation of this method will override the one in NSResponder
. It should not call super
.
– interpretKeyEvents:
(NSResponder)– doCommandBySelector:
(NSResponder)NSInputManager.h
Returns the first frame rectangle for characters in the given range, in screen coordinates.
- (NSRect)firstRectForCharacterRange:(NSRange)theRange
The character range whose frame is returned.
The frame rectangle for the given range of characters.
If theRange spans multiple lines of text in the text view, the rectangle returned is the one for the characters in the first line. If the length of theRange is 0 (as it would be if there is nothing selected at the insertion point), the rectangle coincides with the insertion point, and its width is 0.
NSInputManager.h
Returns a Boolean value indicating whether or not the receiver has marked text.
- (BOOL)hasMarkedText
YES
if the receiver has marked text, NO
if it doesn’t.
Unlike other methods in this protocol, this one is not called by an input server. The text view itself may call this method to determine whether there currently is marked text. NSTextView
, for example, disables the Edit > Copy menu item when this method returns YES
.
NSInputManager.h
Inserts the given string into the receiver’s text storage.
- (void)insertText:(id)aString
Either an NSString
or an NSAttributedString
object.
This method is the entry point for inserting text typed by the user and is generally not suitable for other purposes. Programmatic modification of the text is best done by operating on the text storage directly. Because this method pertains to the actions of the user, the text view must be editable for the insertion to work.
NSInputManager.h
Returns the range of the marked text.
- (NSRange)markedRange
The range of marked text.
The returned range measures from the start of the receiver’s text storage. The return value’s location
is NSNotFound
, and its length
is 0 if and only if hasMarkedText
returns NO
.
NSInputManager.h
Returns the range of selected text.
- (NSRange)selectedRange
The range of selected text.
The returned range measures from the start of the receiver’s text storage. If there is no selection, the return value’s location
is NSNotFound
, and its length
is 0.
NSInputManager.h
Replaces currently marked text in the receiver’s text storage with the given string and sets the selection to the given range, computed from the beginning of the marked text.
- (void)setMarkedText:(id)aString selectedRange:(NSRange)selRange
Either an NSString
or an NSAttributedString
object; must not be nil
.
The range within aString to set as the selection.
If there is no marked text, the current selection is replaced. If there is no selection, the string is inserted at the insertion point.
NSInputManager.h
Removes any marking from pending input text and disposes of the marked text as it wishes. The text view should accept the marked text as if it had been inserted normally.
- (void)unmarkText
NSInputManager.h
Returns an array of names for the attributes supported by the receiver.
- (NSArray *)validAttributesForMarkedText
An array of NSString
objects representing names for the supported attributes.
The input server may choose to use some of these attributes in the text it inserts or in marked text. Returns an empty array if no attributes are supported. See NSAttributedString Additions for the set of string constants that you could return in the array.
NSInputManager.h
© 2006 Apple Computer, Inc. All Rights Reserved. (Last updated: 2006-05-23)