相关疑难解决方法(0)

当键盘出现时 - 如何开始编辑时,如何让UITextField向上移动?

使用iOS SDK:

我有一个UIView带有UITextField键盘的s.我需要它能够:

  1. UIScrollView一旦键盘出现,允许滚动内容以查看其他文本字段

  2. 自动"跳跃"(通过向上滚动)或缩短

我知道我需要一个UIScrollView.我已经尝试将我的类更改UIView为a UIScrollView但我仍然无法向上或向下滚动文本框.

我需要a UIView和a UIScrollView吗?一个进去另一个吗?

需要实现什么才能自动滚动到活动文本字段?

理想情况下,尽可能多的组件设置将在Interface Builder中完成.我只想编写需要它的代码.

注意:我正在使用的UIView(或UIScrollView)是由tabbar(UITabBar)启动的,它需要正常运行.


编辑:我正在添加滚动条,仅用于键盘出现时.即使它不需要,我觉得它提供了更好的界面,因为用户可以滚动和更改文本框.

我已经让它工作,我改变UIScrollView了键盘上下的框架大小.我只是使用:

-(void)textFieldDidBeginEditing:(UITextField *)textField { 
    //Keyboard becomes visible
    scrollView.frame = CGRectMake(scrollView.frame.origin.x, 
                     scrollView.frame.origin.y, 
scrollView.frame.size.width,
scrollView.frame.size.height - 215 + 50);   //resize
}

-(void)textFieldDidEndEditing:(UITextField *)textField {
   //keyboard will hide
    scrollView.frame = CGRectMake(scrollView.frame.origin.x, 
       scrollView.frame.origin.y, 
     scrollView.frame.size.width,
      scrollView.frame.size.height + 215 - 50); //resize
}
Run Code Online (Sandbox Code Playgroud)

但是,这不会自动"向上移动"或将可见区域中的下部文本字段居中,这是我真正想要的.

objective-c uiscrollview uitextfield uikeyboard ios

1674
推荐指数
39
解决办法
61万
查看次数

iPhone键盘覆盖UITextField

我有一个应用程序,在Interface Builder中,我设置了一个UIView在视图底部附近有文本字段的应用程序.当我运行应用程序并尝试在该字段中输入文本时,键盘会向上滑动到字段上方,所以在我再次隐藏键盘之前,我无法看到我正在键入的内容.

有没有其他人遇到这个问题并找到一个很好的方法来解决它,既没有使父视图可滚动或移动文本字段更远的屏幕?

iphone keyboard uitextfield ios

121
推荐指数
8
解决办法
9万
查看次数

UITextField:键盘出现时移动视图

我目前正在开发一个带有单个视图的iPhone应用程序,它有多个UITextField用于输入.键盘显示时,它覆盖底部文本字段.所以我添加了相应的textFieldDidBeginEditing:方法,将视图向上移动,效果很好:

- (void)textFieldDidBeginEditing:(UITextField *)textField {
    if ( ( textField != inputAmount ) && ( textField != inputAge ) ) {
        NSTimeInterval animationDuration = 0.300000011920929;
        CGRect frame = self.view.frame;
        frame.origin.y -= kOFFSET_FOR_KEYBOARD;
        frame.size.height += kOFFSET_FOR_KEYBOARD;
        [UIView beginAnimations:@"ResizeForKeyboard" context:nil];
        [UIView setAnimationDuration:animationDuration];
        self.view.frame = frame;
        [UIView commitAnimations];      
    }
}
Run Code Online (Sandbox Code Playgroud)

如果消息源是键盘显示时可见的文本字段之一,则此方法检查,如果不是,则向上移动视图.

我还添加了textFieldDidEndEnditing:方法,它再次向下移动视图(并根据更改的输入更新一些模型对象):

- (void)textFieldDidEndEditing:(UITextField *)textField {
    if ( ( textField != inputMenge ) && ( textField != inputAlter ) ) {
        NSTimeInterval animationDuration = 0.300000011920929;
        CGRect frame = self.view.frame;
        frame.origin.y …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch objective-c uitextfield

53
推荐指数
2
解决办法
5万
查看次数