0

我正在制作一个简单的 iphone 应用程序,其中我有某些文本字段在另一个下方。问题是当我通过模拟器中的键盘将数据添加到前几个字段中时,小键盘也会弹出,因为我仍在使用模拟器而不是实际手机,所以我没有使用它来打字。现在我无法在键盘隐藏的文本字段中输入数据。

抱歉,如果我的问题很愚蠢,可能有一个捷径,但我是新手,当我在 Google 搜索中找不到东西时,StackOverflow 是我唯一的选择:)

4

5 回答 5

0

使用您的模拟器键盘输入用户输入并编写代码以向上移动文本字段,以便键盘不会隐藏文本字段。将代理连接到文本字段。

我正在使用它来上下移动:在视图中确实加载了,

{
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
 }

和以下方法

- (void) keyboardWillShow: (NSNotification*) aNotification
{    
    int position = 0;


    if ([txtfld1 isFirstResponder])
        position = 120;
    else if ([txtfld2 isFirstResponder]) position = 120;
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3];
    CGRect rect = [[self view] frame];
    rect.origin.y -= position; 
    [[self view] setFrame: rect];
    [UIView commitAnimations];

}
- (void) keyboardWillHide: (NSNotification*) aNotification

{
    int position = 0;


    if ([txtfld1 isFirstResponder])
        position = 120;
    else if ([txtfld2 isFirstResponder]) position = 120;
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3];
    CGRect rect = [[self view] frame];
    rect.origin.y += position; 
    [[self view] setFrame: rect];
    [UIView commitAnimations];
}
于 2011-12-16T07:13:07.963 回答
0

只需添加 textField Delegate.. 这是它的委托方法

    - (BOOL)textFieldShouldReturn:(UITextField *)textField
    {
      ["your Textfiled object Name" resignFirstResponder];
    }

像上面一样设置你的所有 textFiled。您的键盘将被关闭。我建议将您的文本字段保留在 Scrollview 中。它可以帮助你

于 2011-12-16T07:14:19.757 回答
0

您可能正在寻找类似 Android 中的“后退按钮”之类的东西,无论如何它都会关闭 Android 模拟器上的键盘。在 iOS 模拟器中,您没有这样的快捷方式或按钮。您将能够使用返回按钮关闭键盘,但前提是您首先在代码中连接了UITextFieldDelegate使用此代码使您的返回按钮“工作”。

于 2013-01-08T17:41:37.977 回答
0

或者,您可以从 Attributes Inspector 添加一个 RETURN 键(DONE,GO...)。

于 2014-01-24T07:08:28.647 回答
0

我正在使用以下答案来解决问题。希望这对您真的有帮助。您只需在视图 controller.m 文件中使用此代码

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


- (void)textFieldDidEndEditing:(UITextField *)textField
{
    [self animateTextField:textField up:NO];
}
于 2015-04-02T05:20:02.447 回答