Objective C:对文本字段使用标签

发布于 2024-10-31 02:56:08 字数 415 浏览 0 评论 0原文

我有这段代码,

- (IBAction) addNumberField {


if ([firstField.text  intValue] == 3) 
{   
    firstField.text = @"0"; 
}
else
{
    int num = [firstField.text intValue];
    num = num + 1;
    firstField.text = [[NSNumber numberWithInt:num] stringValue];
}
}

您可以看到,通过此 IBAction,我使用按钮增加了文本字段值,范围为 0-3。但我想将此 IBAction 也用于其他文本字段,不仅是第一个字段,而且还用于第二个字段(第二个文本字段)。我认为我应该使用标签,但我不知道方法。你能帮助我吗?

I have this code

- (IBAction) addNumberField {


if ([firstField.text  intValue] == 3) 
{   
    firstField.text = @"0"; 
}
else
{
    int num = [firstField.text intValue];
    num = num + 1;
    firstField.text = [[NSNumber numberWithInt:num] stringValue];
}
}

you can see that with this IBAction I increase textfield value with a button and the range is 0-3. But I want use this IBAction also for an other textfield not only firstField, but also for secondField (second textField). I think that I should use tag, but I don't know the way. Can you help me?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

旧梦荧光笔 2024-11-07 02:56:08

一般来说,当您需要将相同的代码应用于不同的对象或值时,您可以定义如下方法:

- (void)updateNumberField:(UITextField *)textField {
    int num = [textField.text intValue];
    num = (num + 1) % 4;  // this will wrap num to the range [0, 3]
    textField.text = [NSString stringWithFormat:@"%d", num];
}

- (IBAction)addNumberField {
    [self updateNumberField:firstField];
    [self updateNumberField:secondField];
    // you can do the same for whatever field you like
}

当然,可以通过将 num 分配给 textField 来使用标签。 updateNumberField: 方法中的标记。它将为您节省从 NSStringint 的转换。

如果您需要将任何其他值附加到文本字段,请考虑创建一个子类并向其添加所有必需的功能。

In general, when you need to apply the same code to different objects or values, you define a method like this:

- (void)updateNumberField:(UITextField *)textField {
    int num = [textField.text intValue];
    num = (num + 1) % 4;  // this will wrap num to the range [0, 3]
    textField.text = [NSString stringWithFormat:@"%d", num];
}

- (IBAction)addNumberField {
    [self updateNumberField:firstField];
    [self updateNumberField:secondField];
    // you can do the same for whatever field you like
}

It is, of course, possible to use tags by assigning num to textField.tag in updateNumberField: method. It will save you a conversion from NSString to int.

If you need to attach any additional values to your text fields, consider making a subclass and add all the required functionality to it.

爺獨霸怡葒院 2024-11-07 02:56:08

如果您使用 IB 并在代码中为每个文本字段调用 setTag,则为 IB 中的每个文本字段分配标签。

assign tag to each text field in IB if you are using IB and in code call setTag to each textfield.

感悟人生的甜 2024-11-07 02:56:08

.h 文件中,我们声明文本字段的代码,即:

uitextfield *tf;

.m 文件中,我们实现该代码。

在 viewdidload 中:

{
    tf=[uitextfield alloc]initwithframe:(cgrectmake(x axis,y axis, width, height))];
    [self.view addsubview:tf];
}

In .h file we declare the code for textfield, i.e:

uitextfield *tf;

In .m file we implement that one.

In viewdidload:

{
    tf=[uitextfield alloc]initwithframe:(cgrectmake(x axis,y axis, width, height))];
    [self.view addsubview:tf];
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文