iOS中键盘与文本框的处理(一)

             很多情况下,我们在处理文本框的时候,都得考虑到,如果键盘出现了,会不会将键盘给盖住。如果盖住了,我们就得调整一下文本框的位置。那我们来设置一下我们的思路。首先,我们要知道键盘的坐标是怎么处理的。如下图所示:


         键盘是在下面直接弹出来的,我们需要知道键盘的高度。键盘的高度,我们可以在键盘监听事件里面读取,键盘的高度我们知道了,我们就能够知道键盘的坐标,高度确定以后,我们是不是可以用键盘的坐标和文本框的坐标进行做比较,那么接下来,我们来处理怎么样才能判断出文本框的高度。

       下面我们来说一说,一个文本框的情况:

       如果文本框要编辑的时候,弹出了键盘,键盘确挡住了文本框,那么这个时候,我们就必须调整文本框的位置。然后让文本框显示在键盘的上面,我们只需要让文本框的坐标Y减少就可以了,在这里可以减少键盘的高度,代码如下:

namespace keyboard
{
	public partial class ViewController : UIViewController
	{
		//
		private NSObject kbdWillShow, kbdDidHide;

		public ViewController (IntPtr handle) : base (handle)
		{
		}

		public override void ViewDidLoad ()
		{
			base.ViewDidLoad ();
			UITextField text = new UITextField (new CoreGraphics.CGRect (50, 600, 250, 20));
			//键盘的提醒文字
			text.Placeholder = "请输入内容";
			//键盘的风格
			text.KeyboardAppearance = UIKeyboardAppearance.Default;
			//边框宽度
			text.Layer.BorderWidth = 1f;
			//边框颜色
			text.Layer.BorderColor = UIColor.DarkGray.CGColor;
			//设置键盘的类型和收回按键
			text.KeyboardType = UIKeyboardType.Default;
			text.ReturnKeyType = UIReturnKeyType.Done;
			//键盘的展开
			kbdWillShow = UIKeyboard.Notifications.ObserveWillShow ((s, e) => {
				CoreGraphics.CGRect kbdBounds=e.FrameEnd;
				CoreGraphics.CGRect textFrame=text.Frame;
				textFrame.Y-=kbdBounds.Height;
				text.Frame=textFrame;
			});
			//键盘的收起,回到初始状态
			kbdDidHide=UIKeyboard.Notifications.ObserveDidHide((s,e)=>{
				CoreGraphics.CGRect kbdBounds=e.FrameEnd;
				CoreGraphics.CGRect textFrame=text.Frame;
				textFrame.Y+=kbdBounds.Height;
				text.Frame=textFrame;
			});
			//响应键盘的返回事件
			text.ShouldReturn = delegate(UITextField textField) {
				return text.ResignFirstResponder ();
			};
			this.View.AddSubview (text);
		}

    代码已经很清楚了,相信大家一看就清楚了,下面看一看效果,图片如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值