-3

大家好,我有以下问题我已经制作了一个 iphone 应用程序,在该应用程序中,我使用界面生成器制作了应用程序的 UI,并且每当用户在文本字段中输入一些文本并按下时,都有一个文本字段、一个按钮和一个标签按钮消息“欢迎:文本字段内容”显示在标签中我为按钮单击编写了以下 IBAction

-(IBAction)updateText:(id)sender{

    NSString *text;

    if( [ textName.text length] == 0 )
    {
        text = @"Please Enter Your Name";
    }

    else
    {
        text = [ [NSString alloc] initWithFormat:@"Hello : %@" , textName.text ];
    }

    lblHello.text = text;

    [text release];

}

这里 textName 是文本字段的名称, lblHello 是标签

但我想通过编写一些目标 C 函数来自动化在文本字段中输入文本并按下按钮的过程,以便使用 iphone 键盘自动输入值,然后单击按钮。谁能帮我编写该函数以及在何处调用该函数以完成任务。请帮我解决这个问题,并告诉我是否需要更多代码以供参考。

提前致谢

4

2 回答 2

2

为此,您应该使用UITextFieldDelegateMethods。看一下:

textField:shouldChangeCharactersInRange:replacementString:

每当用户在文本字段中键入新字符或删除现有字符时,文本字段都会调用此方法。

对于委托,您必须通过代码或 Interfacebuilder 将文本字段的委托设置为您的视图控制器。并且您必须在您的 viewcontrollers 头文件中声明该类符合UITextFieldDelegate协议。

如安全案例所述,您可以使用委托方法

textFieldDidEndEditing:

也。to 之间的区别在于标签更新的时间:textFieldDidEndEditing:在文本字段中编辑后textField:shouldChangeCharactersInRange:replacementString:调用,在键入期间调用。

代码:

在你的 .h 文件中:

@interface YourClass : YourClassSuperClass <UITextFieldDelegate>

@propertys
-(void)someMethod;
@end

在您的 .m 文件中,您选择要实现的委托方法以演示我将选择textFieldDidEndEditing:

@implementation YourClass

- (void)viewDidLoad {
    textField.delegate = self;
}

#pragma mark - UITextFieldDelegate methods

- (void)textFieldDidEndEditing:(UITextField *)aTextField {
    lblHello.text = aTextField.text;
}

如果你喜欢,你也可以textField.delegate通过 IB 设置。不要忘记设置委托,否则委托方法将不会被调用。

请熟悉委托模式,因为它经常被使用!有关委托如何工作以及如何使用它的更多信息,您可以阅读 Objective-C 编程中的概念 -> 委托和数据源

于 2012-05-23T06:10:16.770 回答
0

为此使用 UITextFieldDelegate 方法。当用户单击 iphone 键盘的返回按钮时,将调用此方法:

- (void)textFieldDidEndEditing:(UITextField *)textField
{

 if( [textName.text length] == 0 )
 {
   text = @"Please Enter Your Name";
 }

 else
 {
   text = [ [NSString alloc] initWithFormat:@"Hello : %@" , textName.text ];
 }

 lblHello.text = text;

}
于 2012-05-23T06:12:48.567 回答