我是 Objective-C 的完全新手,来自 PHP 的背景,各种 BASIC 方言,以及少量的 C/C++。虽然我觉得我在 Interface Builder 中设置基本窗口方面做得很好,但是,我在操作文本字段的内容时遇到了麻烦,尤其是从它们调用值并向它们发送值。
我正在使用没有额外功能的基本 Xcode Cocoa 应用程序模板,并创建了一个名为“controller.h”的 Cocoa 类。在 Interface Builder 中,我将一个带有 Secure Text 字段的窗口、一个基本的 NSTextField 和一个用于提交表单的按钮放在一起。我的控制器类是这样的:
//controller.h
#import <Cocoa/Cocoa.h>
@interface controller {
IBOutlet id userInput;
IBOutlet id userOutput;
}
- (IBAction)submitButton:(id)sender;
@end
//controller.m
#import "controller.h"
@implementation controller
- (IBAction)submitButton:(id)sender {
NSBeep();
[userOutput setStringValue: userInput];
[userInput setStringValue:nil];
}
@end
我将 userInput 链接到 Secure Text 字段,并将 userOutput 链接到 NSTextField。submitButton 链接到 Push Button。根据我对工作原理的理解,这应该将 userInput 中安全文本的值分配给 userOutput,从而更新 NSTextField 中显示的内容,然后重置该字段。蜂鸣声是为了让我知道是否正在调用该函数。
然而,哔声没有响起,这意味着什么都没有发生。不过,Interface Builder 构建了这些文件,所以我知道它们已正确定义并连接到正确的位置。如何修复它以便执行 IBAction 并将值发送到需要的位置?