我们为 iPad 创建了一个自定义数字小键盘。在我们的测试人员 iPad 上,这个键盘突然被移出了适当的位置,我们花了很长时间才发现可以通过在“键盘按钮”通常所在的位置开始拖动来移动那个自定义键盘。
客户将很难将其移回以防万一他们不小心移动了它。由于在特定输入屏幕上移动键盘没有任何意义,我宁愿阻止键盘移动,而不是绘制某种手柄,让用户可以看到键盘可以移动。(这是一个特殊的输入屏幕,仅用于编辑单个数值。键盘就像布局的一部分,在此屏幕上始终可见。)
我努力尝试,但找不到阻止键盘在这个特定位置拖动时移动的方法。甚至我所有的肮脏想法,例如删除可能预先存在的 GestureRecognizers(没有)或将我自己的按钮放在前面也无济于事。
编辑:键盘甚至可以在我能想到的用 Monotouch 编写的最简单的自定义键盘应用程序中移动。我错过了什么吗?
using System;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
namespace KeyboardTest
{
[Register ("AppDelegate")]
public partial class AppDelegate : UIApplicationDelegate
{
private UIWindow window;
private UIViewController viewController;
private UIViewController keyboardViewController;
public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{
window = new UIWindow (UIScreen.MainScreen.Bounds);
// Create a red dummy keyboard
keyboardViewController = new UIViewController();
keyboardViewController.View.BackgroundColor = UIColor.Red;
// Create a textfield and assign our beautiful red keyboard as its InputView
UITextField textField = new UITextField();
textField.BorderStyle = UITextBorderStyle.RoundedRect;
textField.Frame = new System.Drawing.RectangleF(44, 44, 200, 44);
textField.InputView = keyboardViewController.View;
// create a rootview controller and add our textfield
viewController = new UIViewController();
viewController.View.AddSubview(textField);
window.RootViewController = viewController;
window.MakeKeyAndVisible ();
return true;
}
}
}