What's the problem?
If the iPhone does not recognize a word you are currently typing, it offers a suggested alternative. Keep typing text and it will ignore its suggestion. If you instead press the space bar or a period, the iPhone automatically substitutes its suggested alternative for what you were typing. This, in essence, is autocorrection. It's a minimalist spelling checker.
Autocorrection has its upsides. Particularly cool, for example, you can enter contracted words without needing to type the apostrophe. Type cant, for example, and the iPhone will offer can't instead. Still, I rarely use autocorrection. More to the point, I too often find that it gets in my way, suggesting alternatives that are not at all what I intended to type.
The "tipping point" situation for me occurs when an alternative suggestion pops up at the last letter of a word. For example, suppose I truly intended to type cant (it is an actual word) instead of can't. After typing the "t," how do I tell the iPhone not to change the word to can't? The only way, as far as I can tell, is to move my hand from the keyboard and tap on the word itself. Not only is this inconvenient, as it slows down my already slow typing — but, if I don't notice the suggestion and continue typing (pressing the space bar), the unwanted word substitution is made. When I at last notice the error (which I hopefully will at some point), I have to go back and undo the damage, wasting even more time.
Given this, I decided to disable autocorrection. Oops. It turns out that the iPhone does not provide a setting for turning this feature on and off. So I did some searching, both on my own and on the Web. Eventually, I discovered a way to disable the feature. I found a second method described on the Web (although it required some minor updating for it to work with iPhone Software 1.1.4).
Before you get started
Before I detail how these solutions work, here are a few caveats:
• The solutions require that you jailbreak your iPhone (a procedure I have covered on several prior occasions, such as in this blog entry).
The solutions also require editing iPhone system software files. While there are several ways to do this, my preferred method is to use the AFPd utility, which you add via the Installer on a jailbroken iPhone (as I mention in this column and as covered in more detail at a UC Berekeley Web page). With this software installed, and the needed name and password entered, you can mount your iPhone on your Mac, as if it were a shared hard drive — and directly access its content.
Doing these things always has an element of risk. To be safe, make sure you have a backup of your iPhone's files before making any changes. Even though the risk is small, you may be hesitant to take it at all. If so, you may still be intrigued to read on and discover what can be done with an iPhone if you push the envelope a bit.
• The solutions below require the use of Property List Editor (an Apple utility installed when you install the Developer software). For the sake of brevity, I don't provide details on how to use this utility (or similar third-party alternatives such as PlistEdit Pro). If you need more help here, there are several places you can go, including my own series on the subject.
[By the way...if you have registered for access to Apple's iPhone Dev Center, and have downloaded the iPhone SDK, you may have discovered that the SDK includes a significantly updated version of Property List Editor. Among other additions and changes, it includes a View menu — with a suite of choices such as "Show Raw Keys/Values" vs. "Show Strings as Non-lossy ASCII."]
• iPhone 2.0 software is due to be released this month. With a little luck, this should mean that you will no longer have to jailbreak the iPhone to add the AFPd utility (as iPhone 2.0 permits the installation of third-party software). With a bit more luck, iPhone 2.0 may even build-in the option to turn off autocorrection, eliminating the need for this fix altogether. However, I have not seen any indication that this is the case; I expect the fix will still be needed. Finally, it is possible that iPhone 2.0 will include changes to the system software that make the instructions here invalid. Again, I doubt this will be the case, but it's possible. I will certainly check into all of this after iPhone 2.0 is out.
This first solution is a bit simpler and less intrusive than the second option, but it offers less flexibility.
1. After using AFPd to mount your iPhone on your Mac, navigate to Mobile’s Home Dir > Library > Preferences.
2. From here, locate the com.apple.Preferences.plist file. Open it in Property List Editor.
3. Add a new property. Assign its name as KeyboardAutocorrection, with a class Boolean and a value No.
4. Save the modified file.
That's it. You've now disabled autocorrection. It should take effect immediately; there is no need to restart. To reverse the change, simply go back to the plist file and change the value from No to Yes.
This solution adds an Enable Autocorrection option to your iPhone's Settings, allowing you to turn the feature on and off without having to edit a plist file each time.
1. After using AFPd to mount your iPhone on your Mac, navigate to Root File System > Applications.
2. From here, locate an application called Preferences. Use the Show Package Contents contextual menu command to go "inside" the application.
3. Once there, locate a file named Keyboard.plist. Open it in a Property List Editor.
4. Add a new sub-property to the items property. There should already be 7 sub-properties there. Set up this new 8th one to have the settings as shown in the figure below.
5. Save the modified file.
Once again, that's it. Now, go to Settings > General > Keyboard on your iPhone. You should find a new Enable Autocorrection option. Use it to disable or enable autocorrection.