我试图将工具栏(带有文本字段)放在键盘上方。最初,工具栏位于底部。
我尝试使用" inputAccessaryView"在文本字段上。单击文本字段后,工具栏刚刚消失。我知道如果我为它创建一个新工具栏,这将有效。但就像在聊天窗口中一样,我想要相同的文本字段/工具栏。
这是代码
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
NavigationItem.Title = "Name";
ChatInput = new UITextField (new RectangleF(0,0,View.Bounds.Width - 104f,30f));
Toolbar = new UIToolbar (new RectangleF(0, View.Bounds.Height - 44.0f, View.Bounds.Width, 44f));
ChatInput.BorderStyle = UITextBorderStyle.RoundedRect;
Toolbar.SetItems( new UIBarButtonItem[] {
new UIBarButtonItem(UIBarButtonSystemItem.Refresh, (s,e) => {
Console.WriteLine("Refresh clicked");
})
, new UIBarButtonItem (ChatInput){Style = UIBarButtonItemStyle.Bordered,Width = View.Bounds.Width - 104f}
, new UIBarButtonItem(UIBarButtonSystemItem.Reply, (s,e) => {
Console.WriteLine ("Reply clicked");
})
}, false);
ChatInput.ReturnKeyType = UIReturnKeyType.Send;
ChatInput.ShouldBeginEditing = delegate {
ChatInput.InputAccessoryView = Toolbar;
return true;
};
ChatInput.ShouldReturn = delegate {
ChatInput.ResignFirstResponder();
return true;
};
View.AddSubview (Toolbar);
}
答案 0 :(得分:0)
我不知道是否有办法将工具栏固定在键盘顶部,但是当键盘弹出时,您可以创建某种方法来移动工具栏(编辑其.Frame属性)。我使用此方法移动整个UIScrollView
。你可以找到我在这里使用的方法:(http://www.gooorack.com/2013/08/28/xamarin-moving-the-view-on-keyboard-show/)。
这可能不是最“干净”的解决方案,但如果正确实施,它就能完成它的工作。另一个优点是,如果你将整个“移动键盘”放在一个单独的类文件中,你可以在其他视图中重复使用它。
希望这会有所帮助。祝你好运!
爱和问候, 的Björn