大家好,我有以下问题 我制作了一个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 键盘自动输入值,然后单击按钮。任何人都可以帮我编写该函数以及在哪里调用该函数以完成任务。请帮助我解决这个问题,并告诉您是否需要更多代码以供参考。
提前致谢
为此,您应该使用 UITextFieldDelegateMethods。看看:
textField:shouldChangeCharactersInRange:replacementString:
每当用户在文本字段中键入新字符或删除现有字符时,文本字段都会调用此方法。
对于委派,您必须通过代码或接口生成器将文本字段的委托设置为视图控制器。并且您必须在视图控制器头文件中声明该类符合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;
}
如果您愿意,也可以通过IB设置textField.delegate
。不要忘记设置委托,否则不会调用委托方法。
请熟悉委派模式,因为它经常使用!有关更多信息,委派的工作原理以及如何使用它,您可以阅读Objective-C 编程中的概念 ->委托和数据源
为此使用 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;
}