I want to create a khmer keyboard which is different from iPhone keyboard. How can I do that ?
Starting from iOS 4, UITextField and UITextView have a property called inputView. It should be a view able to receive the taps and send to the UIViewController that holds your text field. So, can create a UIViewController with delegate methods, and set it's view as the inputView of your UITextField or UITextView. So, assuming that MyCustomKeyboard is the UIViewController that is your keyboard, including the view and the delegate methods, in your viewDidLoad of your view controller, you should put:
MyCustomKeyboard *customKeyboard = [[MyCustomKeyboard alloc] init];
customKeyboard.delegate = self;
myTextField.inputView = customKeyboard.view;
And in your view controller you handle the delegate methods of your MyCustomKeyboard class.
If you want a tutorial, there is a good one in Ray Wenderlich website, you should do something similar to the iPhone.