step1: Override the nib file and keyboard type-

// The designated initializer. Override to perform setup that is required before the view is loaded.
– (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
notes.keyboardType = UIKeyboardTypeAlphabet;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
return self;

2. Detect keyboard view and add that view a button at specific position:-

– (void)keyboardWillShow:(NSNotification*)notification {
//The UIWindow that contains the keyboard view
UIWindow* tempWindow;

//Because we cant get access to the UIKeyboard throught the SDK we will just use UIView.
//UIKeyboard is a subclass of UIView anyways

UIView* keyboard;

//Check each window in our application
for(int c = 0; c < [[[UIApplication sharedApplication] windows] count]; c ++)

//Get a reference of the current window
tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:c];

//Get a reference of the current view
for(int i = 0; i < [tempWindow.subviews count]; i++)
keyboard = [tempWindow.subviews objectAtIndex:i];

if([[keyboard description] hasPrefix:@”<UIKeyboard”] == YES)

//Keyboard is now a UIView reference to the UIKeyboard we want. From here we can add a subview
//to th keyboard like a new button

UIButton* done = [UIButton buttonWithType:UIButtonTypeCustom];
done.frame = CGRectMake(214, 163, 106, 53);

done.titleLabel.text = @”Done”;
[done addTarget:self action:@selector(back)  forControlEvents:UIControlEventTouchUpInside];
[keyboard addSubview:done];


4 thoughts on “Customize Done button of keyboard

  1. By WebOsPublisher2

    Anolis Resourcer – Resource Hacker Software – Anolis
    About and News
    Discussion Forums
    Anolis Resourcer
    What is Resourcer?
    Windows executables (or more specifically, Win32 PE files) often contain a small database of resources, these are graphics files, text strings, icons, and other programming paraphernalia. Often it can be advantageous to modify these resources, such as to modify a program’s visual appearance or to correct a mistranslation in a string table. Anolis Resourcer is a “resource hacker” program which enables you to do this.
    Anolis Resourcer is a free and open-source utility to view, replace, add, delete, and extract resources located in 32-bit and 64-bit Windows executables and resource (*.res) files. It is written in C# and runs on any system for which the .NET Framework 2.0 exists (i.e. Windows 98 and later).
    Viewing Resources
    Supports viewing bitmaps, icons, cursors, a wide variety of image formats (GIF, JPEG, PNG, and more), AVI animations. Menus, Dialogs, Version Information, and String Tables can all be viewed and dissected.
    There is also a thumbnail view for most resource data formats so you can see them all at a glance without having to extract them individually. Three thumbnail sizes available (16×16, 32×32, and 96×96)
    Exporting and Extracting Resources
    All resources can be saved to disk as a raw data file (*.bin), additionally most “known” data types, such as images, icons, and cursors can be saved to their appropriate file formats.
    You can also batch extract all resources (or just “visual” resources) from a single file, or a directory full of executables in a couple of mouse-clicks. Select the “Batch Export” menu item under Tools or the Open Button’s side menu.
    Replacing and Updating Resources
    You can replace most resources with their file-based equivalents (i.e. replace a Bitmap resource with a *.bmp file, or an Icon Directory resource with an *.ico file). Further options are available for some types, like icons (see “Intelligent Icons” below).
    Some resource types don’t have a special file format (like Version Information, or String Tables), in which case during replacement their raw data is replaced with the raw data from a file. Use caution with this procedure.
    Intelligent Icon Replacement
    Icon resources are stored in two places: the “directory” containing references to sub-images is stored in the Icon Directory resource, and the actual images that make up an icon are stored in the Icon Images area.
    Most resource editors delete the old subimages before adding new ones and overwriting the directory. Resourcer has the option to “merge” icons instead, so you end up with the union of the original icon and the new file’s icon.
    Vista MUI and RC CONFIG Aware
    Windows Vista introduced some changes to the resource model with “RC Config” and MUI files. Resourcer is aware of these changes and can work around them to achieve the results you’re after.
    x64 Support
    Resourcer runs on the .NET Framework, so it will run as an x64 program on x64 systems (and thus, not be subject to x64’s WOW64 filesystem and API sandboxing).
    But more importantly: Resourcer can perform the same operations it does on 32-bit executable files as to 64-bit executable files, ensuring forwards-compatibility for modern computing systems.
    Ancillary Features
    Portable – Requires no installation, just extract and run
    Command-Line Arguments – Automate resource tasks from a batch/command scripting environment
    Extensible and Developer Friendly – Reference Resourcer in your .NET projects to allow your programs to work with resources directly. You can also extend Resourcer with your own code for working with specific resource data types and source file formats.
    See the screenshot page.
    Anolis Resourcer is licensed under GPLv2. In a nutshell it means:
    You are free to redistribute Resourcer’s source code or compiled executables (as long as it isn’t modified)
    If you make modifications to the program, you must distribute them under the same GPL license (and provide the changes’ source code)
    Resourcer is provided without any warranty.
    Download the latest version from CodePlex.
    The latest version is 0.9, released 1st September 2009, 387KB. Download.
    Icons by DryIcons.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.