void ShowCallback(object sender, MonoTouch.UIKit.UIKeyboardEventArgs args)
    {
        // This happens if the user focuses a textfield outside of the
        // tableview when the tableview is empty.
        UIView activeView = this.View.FindFirstResponder();

        if ((activeView == null) || (activeView == Customer))
        {
            return;
        }
        // Get the size of the keyboard
        RectangleF keyboardBounds = args.FrameEnd;
        // Create an inset and assign it to the tableview
        UIEdgeInsets contentInsets = new UIEdgeInsets(0.0f, 0.0f, keyboardBounds.Size.Height, 0.0f);

        myTableView.ContentInset          = contentInsets;
        myTableView.ScrollIndicatorInsets = contentInsets;
        // Make sure the tapped location is visible.
        myTableView.ScrollRectToVisible(activeView.Frame, true);
    }
 void HideCallback(object sender, MonoTouch.UIKit.UIKeyboardEventArgs args)
 {
     // If the tableView's ContentInset is "zero", we don't need to
     // readjust the size
     if (myTableView.ContentInset.Top == UIEdgeInsets.Zero.Top)
     {
         return;
     }
     // Remove the inset when the keyboard is hidden so that the
     // TableView will use the whole screen again.
     UIView.BeginAnimations(""); {
         UIView.SetAnimationCurve(args.AnimationCurve);
         UIView.SetAnimationDuration(args.AnimationDuration);
         var viewFrame   = View.Frame;
         var endRelative = View.ConvertRectFromView(args.FrameEnd, null);
         viewFrame.Height                  = endRelative.Y;
         View.Frame                        = viewFrame;
         myTableView.ContentInset          = UIEdgeInsets.Zero;
         myTableView.ScrollIndicatorInsets = UIEdgeInsets.Zero;
     } UIView.CommitAnimations();
 }