iphone - 向上移动 View 以容纳键盘

标签 iphone xamarin.ios

我有一个包含多个文本字段的 View ,我想要实现与“联系人”应用程序在单击文本字段时执行的相同效果,否则在键盘出现时会被键盘隐藏。当我关闭键盘时,我计划将 View 正确向下移动。

我怀疑我是通过更改 Frame 值来做到这一点的,但我需要将其设置为动画,以免对用户造成干扰。

建议?例子?

最佳答案

将 View 包装在 UIScrollView 中确实是正确的方法。以及在 textFieldDidEndEditing 委托(delegate)上,您可以改为订阅 UIKeyboardDidHideNotificationUIKeyboardDidShowNotification,当您收到键盘隐藏的通知时/显示然后适当滚动您的 View 。如果您需要的话,我可以发布键盘通知的代码示例:)

编辑 我想无论如何我都会发布代码 - 有人可能会发现它有帮助:

您需要声明通知的监听器:

NSObject hideObj = NSNotificationCenter.DefaultCenter.AddObserver(UIKeyboard.DidHideNotification, HandleKeyboardDidHide);
NSObject showObj = NSNotificationCenter.DefaultCenter.AddObserver(UIKeyboard.DidShowNotification, HandleKeyboardDidShow);   

那么你的 Action 方法将类似于:

void HandleKeyboardDidShow(NSNotification notification)
{
     scrollView.ScrollRectToVisible(textfield.Frame, true);
}

void HandleKeyboardDidHide(NSNotification notification)
{
     // scroll back to normal
}

编辑2

因此,如果您想在 View 销毁时删除观察者,首先需要确保在添加观察者时分配 NSObject,然后使用以下代码删除它们:

NSNotificationCenter.DefaultCenter.RemoveObserver(showObj);
NSNotificationCenter.DefaultCenter.RemoveObserver(hideObj);

希望有帮助。

关于iphone - 向上移动 View 以容纳键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5181242/

相关文章:

c# - Xamarin.iOS 在应用未关闭时处理推送通知

iphone - 从另一个应用程序控制 iPod?

ios - 动画 View 跳转到最终位置而不是缓慢移动

iPhone:NSURLRequest CachePolicy 设置之间的性能差异

ios - UIImageView 上的 UITableView

iphone - 有没有办法让 MonoTouch(运行时和关联库)成为标准 iOS 项目/应用程序中的消耗和引用库?

iphone - “NSURLIsExcludedFromBackupKey”未声明

iPhone - 对地理围栏的质疑

c# - 如何在 Oxyplot 中添加大量数据时自动平移

ios - 无论 Apple 应用程序站点关联如何,通用链接始终打开应用程序