MonoTouch:ResignFirstResponder()问题

时间:2011-12-22 02:45:53

标签: ios xcode uiscrollview xamarin.ios

我有一个存储多个UIViews的UIScrollView。当我的键盘弹出时,我正在使用UIKeyboardDidShowNotification调整此UIScrollView的大小,以便我的可查看内容区域仅在键盘上方。我这样做:

contentArea.Frame = new System.Drawing.RectangleF(0, contentArea.Frame.Top, 1024, 768 - contentArea.Frame.Top - r.Height);      

现在当键盘正常消失且UIKeyboardWillHideNotification触发时,我可以轻松地将其重置为以下内容,并且效果很好:

contentArea.Frame = new System.Drawing.RectangleF(0, contentArea.Frame.Top, 1024, 627); 

我的问题是当我必须切换视图时,我需要隐藏这个键盘。为此,我在ResignFirstResponder()上致电UITextField

  • 如果我从未在UITextField中输入任何文字,这样可以正常使用。
  • 如果我不滚动我的视图,这一切正常。
  • 但是,如果输入了文字并且滚动了,我的UIScrollView会返回原始大小,但现在它的滚动距离偏移* -1。因此,如果偏移量为50,则现在为-50。这意味着我的视图顶部是UIScrollView下方50个像素。

如果我手动更新UIScrollView的偏移量,它就不会做任何事情。要实际解决这个问题,我必须在新版UITextField内点击它,它会将我UIScrollView中的所有观看内容修复为应有的内容。

非常感谢有关如何解决此问题的任何帮助!我正在从5.0更新到5.1,希望这是一个有希望修复的错误,但我的希望很低。

0 个答案:

没有答案