相关疑难解决方法(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万
查看次数

什么是UIScrollView contentInset属性?

有人可以向我解释一个UIScrollView实例中的contentInset属性用于什么?也许提供一个例子?

uiscrollview

155
推荐指数
3
解决办法
10万
查看次数

键盘出现时如何滚动UIScrollView?

我的代码遇到了问题.我正在尝试移动UIScrollView当我正在编辑时UITextField应该被键盘弹出隐藏.

我现在正在移动主框架,因为我不知道如何在代码中"向上滚动".所以,我做了一些代码,它工作正常但是当我编辑一个UItextfield并且我切换到另一个UITextField而没有按下"返回"按钮时,主视图变得非常了不起.

NSLog()用变量大小,距离和textFieldRect.origin.y 做了一个,如下所示.当我把两个UITextField放在同一个地方(y原点)并且我做这个特别的'开关'(没有按回车)时,我得到相同的数字,而我的代码在第一次UITextField编辑时工作正常但不适用于第二次编辑.

看一下这个:

- (void)textFieldDidBeginEditing:(UITextField *)textField {
{
    int size;
    CGRect textFieldRect = [self.view.window convertRect:textField.bounds fromView:textField];
    size = textFieldRect.origin.y + textFieldRect.size.height;
    if (change == FALSE)
    {
        size = size - distance;
    }
    if (size < PORTRAIT_KEYBOARD_HEIGHT)
    {
        distance = 0;
    }
    else if (size > PORTRAIT_KEYBOARD_HEIGHT)
    {
        distance = size - PORTRAIT_KEYBOARD_HEIGHT + 5; // +5 px for more visibility
    }
    NSLog(@"origin %f", textFieldRect.origin.y);
    NSLog(@"size %d", …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch objective-c scrollview ios

102
推荐指数
8
解决办法
10万
查看次数

iPhone - 键盘隐藏TextField

我正在使用UITextField来接收用户输入.但是,由于我的文本字段朝向笔尖的中间/底部,因此当键盘弹出时会隐藏它.有没有什么方法可以将它与键盘一起滑动,以便在选择时它位于键盘的顶部?此外,由于我也在使用数字键盘,是否有一种简单的方法可以在某处包含完成按钮?

谢谢您的帮助.

iphone keyboard uitextfield

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

textFieldDidBeginEditing:没有被调用

我从这个问题得到了下面的代码.我正在尝试在开始编辑时滑动文本字段(因为它们会被iPhone键盘覆盖).但是,日志语句显示未调用textFieldDidBeginEditing方法.

我在UIViewController的两个不同的子类中有下面的代码.例如,在其中一个中,我有一个从故事板连接到UIViewController的文本字段

@property (strong, nonatomic) IBOutlet UITextField *mnemonicField;
Run Code Online (Sandbox Code Playgroud)

我将文本字段移动到视图的顶部(即没有被键盘覆盖),以便我可以编辑它以尝试触发日志语句,但它不起作用.否则文本字段按预期工作,即我输入的数据将保存到coreData等.

你能解释一下我可能做错了什么吗?

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    NSLog(@"The did begin edit method was called");
    [self animateTextField: textField up: YES];
}


- (void)textFieldDidEndEditing:(UITextField *)textField
{
    [self animateTextField: textField up: NO];
}

- (void) animateTextField: (UITextField*) textField up: (BOOL) up
{
    const int movementDistance = 180; // tweak as needed
    const float movementDuration = 0.3f; // tweak as needed

    int movement = (up ? -movementDistance : movementDistance);

    [UIView beginAnimations: @"anim" context: nil];
    [UIView …
Run Code Online (Sandbox Code Playgroud)

objective-c ios

15
推荐指数
1
解决办法
2万
查看次数

UITableViewController和UITextField键盘

我有一个带有分组静态UITableView的UITableViewController.我在故事板上为我的静态表视图定义单元格.其中一个单元格中有一个文本字段.当调用此文本字段时,键盘会弹出,但是,表视图不会像通常在表视图控制器上那样自动调整大小.所以现在键盘部分覆盖文本区域,我无法向上滚动.

我的理解是,当您使用UITableViewController和tableview时,可调区域应该在调用键盘时自动缩小.它确实在我的应用程序的其他部分中工作,而不是使用此静态表视图.它不适用于静态表吗?还有其他我想念的东西吗?有没有简单的方法来解决这个问题?

谢谢

objective-c ios

10
推荐指数
1
解决办法
6361
查看次数

向上移动UIToolbar

我的视图底部有一个UIToolbar,我在这个工具栏中有一个UITextField.当我开始编辑这个字段时,它隐藏在键盘后面.要查看我输入的内容,我想在键盘出现时将工具栏向上移动(然后在我完成编辑后将其向下移动).

如何上/下移动此UIToolbar?

iphone keyboard

9
推荐指数
3
解决办法
8757
查看次数