私はUITextViewとボタンを持っています。 ユーザーがボタンをタップしたときにキーボードが開いたままになっている必要があります。iOSは特定の要素をタブするときにキーボードを開いたままにします
私はShouldEndEditing関数を使ってFalseを返そうとしましたが、ユーザーは決してキーボードをもう一度閉じることはできません。
アイデア?
私はXamrinフォームを使用しています。
私はUITextViewとボタンを持っています。 ユーザーがボタンをタップしたときにキーボードが開いたままになっている必要があります。iOSは特定の要素をタブするときにキーボードを開いたままにします
私はShouldEndEditing関数を使ってFalseを返そうとしましたが、ユーザーは決してキーボードをもう一度閉じることはできません。
アイデア?
私はXamrinフォームを使用しています。
Objective-Cでは、View ControllerでDone Editingイベントを設定します。これにより、視覚的な変更を加えずにキーボードがただちに再開されます。
-(IBAction) textFieldDoneEditing : (id) sender{
[sender resignFirstResponder];
[sender becomeFirstResponder];
}
ザマリン/ C#相当のものです。私の頭の上にあります。
txtMyTextBox.Ended += (sender, e) =>
{
txtMyTextBox.ResignFirstResponder();
txtMyTextBox.BecomeFirstResponder();
};
また、txtMyTextBox.BecomeFirstResponder()を実行することもできます。助けあなたのボタンのハンドラ –
の一部が、キーボードがまだクローズされており、開口部として... –
はこれだけ 'txtMyTextBox.Ended + =(送信者、E)=> { txtMyTextBox、最初のコマンドをドロップしてください。 BecomeFirstResponder(); }; ' –
ああ、興味深い質問とあなたはすでにUITextFieldDelegate内のプロパティ「ShouldEndEditing」について知っていたので、なぜあなたはあなたのUITextFieldのためのカスタムデリゲートを実装しようとしないのですか?
私はあなたのためにサンプルを書いて、私はあなたのViewControllerで、キーボードを隠すための条件をシミュレートするためにUISwitchを使用して、以下のコードを使用します
public override void ViewDidLoad()
{
MYTextFieldDelegate myDel = new MYTextFieldDelegate();
UITextField textTF = new UITextField();
textTF.Frame = new CoreGraphics.CGRect (50, 50, 200, 40);
textTF.BackgroundColor = UIColor.Red;
textTF.Delegate = myDel;
this.Add (textTF);
UIButton btnTest = new UIButton (UIButtonType.System);
btnTest.SetTitle ("Test", UIControlState.Normal);
btnTest.Frame = new CoreGraphics.CGRect (50, 100, 200, 40);
btnTest.TouchUpInside += delegate {
this.View.EndEditing (true);
};
this.Add (btnTest);
UISwitch keyboardSwitch = new UISwitch();
keyboardSwitch.Frame = new CoreGraphics.CGRect (50, 150, 200, 40);
keyboardSwitch.ValueChanged += (sender, e) => {
bool flag = (sender as UISwitch).On;
myDel.FlagForDisplayKeyboard = flag;
};
this.Add (keyboardSwitch);
}
をそしてこれがMYTextFieldDelegate.csです:
class MYTextFieldDelegate : UITextFieldDelegate
{
public bool FlagForDisplayKeyboard { get; set; }
public override bool ShouldEndEditing (UITextField textField)
{
return FlagForDisplayKeyboard;
}
public MYTextFieldDelegate()
{
FlagForDisplayKeyboard = false;
}
}
お手数ですがお手伝いします。
投稿できる完全な証明可能な例がありますか?それ以外の情報がなければ、ShouldEndEditingを変更して、キーボードを開いたままにしておきたい場合にのみfalseを返し、キーボードを閉じても問題ない場合はtrueに変更する必要があります。今はあなたがただ偽を返しているようです。 –