2013-11-16

There are a ton of potential solutions on the Internet for adding a Done button to a NumberPad-type of UITextField on iOS. Unfortunately most of them are old, use custom images or even require iterating through sub views to find the target keyboard.

Below is a solution -- using Xamarin -- to add a Done button without fear of index-out-of-bound exceptions or using out-dated custom images. The trick is using the WeakInputDelegate of the UITextField & adding a custom button to that.
A full working project is available on github.

3 comments:

Hi,Thanks for the code, it's a very helpful code snippet. One more step to make it perfect is to remove the done button after you resign the textField from being First Repsonder, i.e after this line: _txtNumbers.ResignFirstResponder();

Removing done button is important or it will stay on the keyboad as long as the app is alive. For example, it will appear on the full keyboard if opened. So, please add this line of code (in the TouchUpInside Event Handler):