iPad 用のカスタム テンキーパッドを作成しました。私たちのテスターである iPad では、このキーボードが突然ずれてしまい、「キーボード ボタン」が通常配置される場所からドラッグを開始することでカスタム キーボードを移動できることを理解するのにかなりの時間がかかりました。
誤って移動してしまった場合、顧客は元に戻すのに非常に苦労します。その特定の入力画面でキーボードを移動するのは意味がないので、キーボードを移動できることをユーザーに見えるようにする何らかのハンドルをペイントする代わりに、キーボードが移動しないようにすることをお勧めします。(これは、1 つの数値だけを編集するための特別な入力画面です。キーボードはレイアウトの一部のようなもので、この画面には常に表示されています。)
私は一生懸命試しましたが、この特定の場所にドラッグしたときにキーボードが動かないようにする方法を見つけることができませんでした. 既存の GestureRecognizer を削除したり (存在しなかった)、独自のボタンを前面に配置したりするなど、私のすべての汚いアイデアでさえ役に立ちませんでした。
編集: キーボードは、私が考えることができる 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;
}
}
}