-1

我花了好几个小时来解决这个问题,但无法解决。我按照这个基本教程来创建具有

  • 文本控件
  • 按钮控制
  • 标签控制

我创建了一个新类,添加了 NSString 对象,将 NSString 对象的类名更改为我的类。然后我控制+拖动文本框,标签到 myclass.h(网点)。我对按钮做了同样的事情,但这次选择了动作。

现在我将代码付诸行动以访问我的标签,但我不能。它们不会出现在智能感知中。我在这方面花了很长时间。这是一个非常基本的问题。我究竟做错了什么?我正在使用 XCODE 4.6.3。

------------------- .h file ---------------------
#import <Foundation/Foundation.h>

@interface myclass : NSObject
- (IBAction)doSomething:(id)sender;
@property (weak) IBOutlet NSView *mytextbox;
@property (weak) IBOutlet NSTextField *mylabel;

@end

----------------- .c file ---------------------------
#import "myclass.h"

@implementation myclass

- (IBAction)doSomething:(id)sender {
    [self.mytextbox.value setStringValue:@"hello there"];

    [mytextbox] (not accessible)
}
@end
---------------------------------------------
4

3 回答 3

0

尝试使其成为 NSTextField

@property (weak) IBOutlet NSTextField *mytextbox;

也可以在您的 nib 文件中修复它。

于 2013-06-30T13:20:10.903 回答
0

它不.c file应该是 .m 扩展名。(或者 .mm 如果你也想使用 c++ 代码)。这不仅仅是一种风格的东西,它是必要的。

[mytextbox] (not accessible)

要访问 mytextbox 实例变量,请执行 self.mytextbox 或 [self mytextbox]。

于 2013-06-30T15:47:09.840 回答
0

这里的诀窍是,我必须在变量(属性)名称之前使用下划线字符。我不知道为什么要使用 underscore 以及它的目的是什么。我是 xcode 的新手。所以

_mytextbox  //worked
于 2013-07-01T02:35:57.280 回答