新的iOS开发者与第一个委托应用程序。
具有多个文本字段的滚动视图。
在textFieldDidBeginEditing:
中对页面内容的向上移动进行编码,这样文本字段就不会被键盘所掩盖。有编码键盘消失时,键盘返回键按下使用textFieldShouldReturn:
和我已经编码的屏幕返回到它在didHideKeyboard
的原始位置。
如果用户在第一个响应程序文本字段之外点击(包括在另一个文本字段中点击),屏幕就会以某种方式返回到原来的位置,而不会触发我的任何代码,键盘也不会消失。我不使用autolayout
。
我的问题是,当用户在输入第一个文本字段后立即点击第二个文本字段时,如何防止屏幕返回到原来的位置?
发布于 2013-08-30 04:13:14
这取决于当用户试图触摸文本字段外时要做什么。一种选择是在文本字段正在编辑时,简单地禁用滚动视图上的滚动,然后在键盘被拒绝时重新启用它。
另一个不同的选项是实现UIScrollViewDelegate方法scrollViewWillBeginDragging:
,以检测用户正在移动滚动视图,然后重新设置滚动视图的偏移量,并从那里重新签署第一个响应程序。
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
if (myTextField.isFirstResponder) {
[scrollView setContentOffset:originalOffset];
[myTextField resignFirstResponder];
}
}
发布于 2013-08-30 04:13:52
对于您的问题,您可以让名为TPKeyboardAvoiding
的打击程序库使用UITextField
设置滚动位置,并在键盘打开和隐藏时设置UITextView
。你不需要任何手动设置的滚动位置在不同的方法。
它是UIScrollView
的子类。以及管理所有的东西。
请获取键盘避免滚动视图上的文件和实现细节
https://stackoverflow.com/questions/18532516
复制相似问题