Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I have done this. Basically you add your own button as a subview of the UIKeyboard like this:</p> <pre><code>// This function is called each time the keyboard is going to be shown - (void)keyboardWillShow:(NSNotification *)note { // Just used to reference windows of our application while we iterate though them 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 &lt; [[[UIApplication sharedApplication] windows] count]; c ++) { // Get a reference of the current window tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:c]; // Loop through all views in the current window for(int i = 0; i &lt; [tempWindow.subviews count]; i++) { // Get a reference to the current view keyboard = [tempWindow.subviews objectAtIndex:i]; // From all the apps i have made, they keyboard view description always starts with &lt;UIKeyboard so I did the following if([[keyboard description] hasPrefix:@"&lt;UIKeyboard"] == YES) { // Only add the Decimal Button if the Keyboard showing is a number pad. (Set Manually through a BOOL) if (numberPadShowing &amp;&amp; [keyboard viewWithTag:123] == nil) { // Set the Button Type. dot = [UIButton buttonWithType:UIButtonTypeCustom]; // Position the button - I found these numbers align fine (0, 0 = top left of keyboard) dot.frame = CGRectMake(0, 163, 106, 53); dot.tag = 123; // Add images to our button so that it looks just like a native UI Element. [dot setImage:[UIImage imageNamed:@"dotNormal.png"] forState:UIControlStateNormal]; [dot setImage:[UIImage imageNamed:@"dotHighlighted.png"] forState:UIControlStateHighlighted]; //Add the button to the keyboard [keyboard addSubview:dot]; // When the decimal button is pressed, we send a message to ourself (the AppDelegate) which will then post a notification that will then append a decimal in the UITextField in the Appropriate View Controller. [dot addTarget:self action:@selector(sendDecimal:) forControlEvents:UIControlEventTouchUpInside]; return; } else if (numberPadShowing &amp;&amp; [keyboard viewWithTag:123]) { [keyboard bringSubviewToFront:dot]; } else if (!numberPadShowing) { for (UIView *v in [keyboard subviews]){ if ([v tag]==123) [v removeFromSuperview]; } } } } } } - (void)sendDecimal:(id)sender { // The decimal was pressed } </code></pre> <p>Hope that's clear. </p> <p>-Oscar</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload