使用UITextField文本附加文本

时间:2009-08-20 10:03:30

标签: objective-c cocoa

我在Windows中运行Shell中的Objective-C / Cocoa,而不是在Mac OS X上运行。

我想在单击按钮时在文本字段中附加一个包含现有字符串的字符串。我在窗口中创建了一个按钮,但是当我点击该按钮时,我不知道如何附加字符串。

如果单击该按钮,如何将字符串附加到文本字段?

4 个答案:

答案 0 :(得分:11)

这是一个非常空洞的问题,可能很快就会被删除。但是,尝试以某种方式回答它:

如果你想在点击按钮时显示某些内容,那么你需要一个UIButton(已经添加了你已经说过),让我们说一个UILabel。您可以在发现按钮的同一窗口中找到UILabel。将它添加到视图中,位于按钮下方。

然后,您希望找到与.xib文件对应的.h文件(如果您在XCode中默认设置了某些内容,则会为您创建该文件)。我们称之为MyViewController.h,尽管它在你的应用程序中会有不同的名称。

在该.h文件中,您要创建一个IBAction(以便您可以检测代码中的按钮单击)和一个IBOutlet(这样您就可以更新标签上的文本)。

代码应该看起来像这样:

//
//  MyViewController.h

#import <UIKit/UIKit.h>

@interface MyViewController : UIViewController {
    UILabel *label;
}
@property (nonatomic, retain) IBOutlet UILabel *label;
- (IBAction)buttonClick;

@end

然后,返回创建按钮的.xib文件。选择“文件所有者”,打开“工具”菜单下的“身份检查器”,确保该类设置为与我们刚编辑的.h文件的类名相同。

现在我们需要连接按钮和标签。单击按钮,再次从“工具”菜单中调出“连接检查器”。单击“内部触摸”旁边的圆圈,然后将其拖动到“文件所有者”。选择在窗口中弹出的“buttonClick”方法。现在选择文件的所有者。单击“标签”一词旁边的圆圈,然后将其拖动到iPhone屏幕上的标签上。现在,它已将标签和按钮连接到您之前编写的代码。

最后,保存.xib文件并打开MyViewController.m文件(或在您的应用程序中调用它)。添加以下内容:

//
//  MyViewController.m

#import "MyViewController.h"   // Swap this name for the name of your .h file

@implementation MyViewController

@synthesize label;

-(IBAction)buttonClick {
    label.text = @"Hello World!"
}

- (void)dealloc {
    [label release];
    [super dealloc];
}

@end

花一些时间查看各种教程等,你会很快加快速度。

答案 1 :(得分:2)

您没有指定是使用UILabel(Cocoa Touch)还是使用NSTextField(Cocoa)。对于后者,获取字段的stringValue,向该对象发送包含您要附加​​的字符串的stringByAppendingString:消息,并将结果传递给字段的setStringValue:方法。

答案 2 :(得分:1)

简短回答:在控制器类中创建IBAction方法,并将IBAction设置为按钮的目标。

答案很长:拿一本书来了解Cocoa的细节。 Cocoa很难开始使用,但是一旦你进行了初始投资,你就能够快速创建应用程序。我推荐Aaron Hillegass为Mac OS X推荐Cocoa Programming。它是以桌面为导向而不是iPhone,但这不应该让你失望。

还有很多很棒的网络资源可供学习Cocoa。 Cocoa Dev Central和Apple开发者网站是很好的起点。

答案 3 :(得分:1)

import <UIKit/UiKit.h>
@interface MyViewController : UIViewController {
    UIButton *btnToAppend;
    UITextField *textfield;
}

- (IBAction)buttonClick:(id)sender;

@end

import "MyViewController.h"

@implementation MyViewController

-(void)init{
    btnToAppend = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    btbToAppend.frame = CGRectMake(10, 10, 100, 30);
    [btnToAppend setText:@"Append Text" forState:UIControlStateNormal];
    [btnToAppend addTarget:self action:@select(buttonClick:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubView:btnToAppend];
    textfield = [[UITextField alloc] initWithFrame:CGRectMake(10, 200, 300, 50)];
    textfield.borderStyle = UITextBorderStyleRoundedRect;
    [self.view addSubView:textfield];
}

-(IBAction)buttonClick:(id)sender {
    NSString *string = [textfield.text stringByAppendingString:@"Welcome "];
    textfield.text = string;
}

- (void)dealloc {
    [super dealloc];
}

@end

输出将如下:

  

欢迎欢迎欢迎...