我在Windows中运行Shell中的Objective-C / Cocoa,而不是在Mac OS X上运行。
我想在单击按钮时在文本字段中附加一个包含现有字符串的字符串。我在窗口中创建了一个按钮,但是当我点击该按钮时,我不知道如何附加字符串。
如果单击该按钮,如何将字符串附加到文本字段?
答案 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
输出将如下:
欢迎欢迎欢迎...