- Inherits from:
- NSObject
- Package:
- com.apple.yellow.application
The NSSpellChecker class gives any application an interface to the Cocoa spell-checking service. To handle all its spell checking, an application needs only one instance of NSSpellChecker. It provides a panel in which the user can specify decisions about words that are suspect. To check the spelling of a piece of text, the application:
The checkSpellingOfString method checks the spelling of the words in the specified string beginning at the specified offset (this example uses 0 to start at the beginning of the string) until it finds a word that is misspelled. Then it returns an NSRange to indicate the location of the misspelled word.
In a graphical application, whenever a misspelled word is found, you'll probably want to highlight the word in the document, using the NSRange that checkSpellingOfString returned to determine the text to highlight. Then you should show the misspelled word in the Spelling panel's misspelled-word field by calling updateSpellingPanelWithMisspelledWord. If checkSpellingOfString does not find a misspelled word, you should call updateSpellingPanelWithMisspelledWord with the empty string. This causes the system to beep, letting the user know that the spell check is complete and no misspelled words were found. None of these steps is required, but if you do one, you should do them all.
The object that provides the string being checked should adopt the following protocols:
Protocol | Description |
NSChangeSpelling | A message in this protocol (changeSpelling:) is sent down the responder chain when the user presses the Correct button. |
NSIgnoreMisspelledWords | When the object being checked responds to this protocol, the spell server keeps a list of words that are acceptable in the document and enables the Ignore button in the Spelling panel. |
The application may choose to split a document's text into segments and check them separately. This will be necessary when the text has segments in different languages. Spell checking is invoked for one language at a time, so a document that contains portions in three languages will require at least three checks.
The process of checking spelling makes use of three references:
A word is considered to be misspelled if none of these three accepts it.
The String being checked isn't the same as the document. In the course of processing a document, an application might run several checks based on different parts or different versions of the text. But they'd all belong to the same document. The NSSpellChecker keeps a separate "ignored words" list for each document that it checks. To help match "ignored words" lists to documents, you should call uniqueSpellDocumentTag once for each document. This method returns a unique arbitrary integer that will serve to distinguish one document from the others being checked and to match each "ignored words" list to a document. (The convenience method checkSpellingOfString takes no tag. This method is suitable when the first responder does not conform to the NSIgnoreMisspelledWords protocol.)
When the application saves a document, it may choose to retrieve the "ignored words" list and save it along with the document. To get back the right list, it must send the NSSpellChecker an ignoredWords message. When the application has closed a document, it should notify the NSSpellChecker that the document's "ignored words" list can now be discarded, by sending it a closeSpellDocumentWithTag message. When the application reopens the document, it should restore the "ignored words" list with the message setIgnoredWords.
- Constructors
- NSSpellChecker
- Getting the spell checker
- sharedSpellChecker
- sharedSpellCheckerExists
- Managing the spelling panel
- setAccessoryView
- accessoryView
- spellingPanel
- Checking spelling
- countWordsInString
- checkSpellingOfString
- Setting the language
- setLanguage
- language
- Managing the Spelling Process
- uniqueSpellDocumentTag
- closeSpellDocumentWithTag
- ignoreWord
- setIgnoredWords
- ignoredWords
- setWordFieldStringValue
- updateSpellingPanelWithMisspelledWord
public NSSpellChecker()
public static NSSpellChecker sharedSpellChecker()
See Also: sharedSpellCheckerExists
public static boolean sharedSpellCheckerExists()
See Also: sharedSpellChecker
public static int uniqueSpellDocumentTag()
public NSView accessoryView()
See Also: setAccessoryView
public NSRange checkSpellingOfString(
String stringToCheck,
int startingOffset)
public void closeSpellDocumentWithTag(int tag)
public int countWordsInString(
String stringToCount,
String language)
public void ignoreWord(
String wordToIgnore,
int tag)
public NSArray ignoredWords(int tag)
See Also: setIgnoredWords
public String language()
See Also: setLanguage
public void setAccessoryView(NSView aView)
See Also: accessoryView
public void setIgnoredWords(
NSArray someWords,
int tag)
See Also: ignoredWords
public boolean setLanguage(String language)
See Also: language
public void setWordFieldStringValue(String aString)
public NSPanel spellingPanel()
public void updateSpellingPanelWithMisspelledWord(String word)