Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 连接NSTextField的正确方法_Macos_Cocoa_Interface Builder_Textfield - Fatal编程技术网

Macos 连接NSTextField的正确方法

Macos 连接NSTextField的正确方法,macos,cocoa,interface-builder,textfield,Macos,Cocoa,Interface Builder,Textfield,我正在尝试创建一个简单的MacOSX应用程序,它显示文本输出,并记录我的程序。以下是我所做的: 1) 创建了一个Mac OS X UI项目 2) 在MainMenu.xib的应用程序窗口中间添加了一个“文本字段”组件 3) 添加了具有以下属性的新类“MainWindow.m”: @property (assign) IBOutlet NSTextField *mainWindowText; 4) 将“引用出口”从文本字段组件连接到属性。我现在看到上面代码行左边有一个灰点 5) 在我的应用程序中

我正在尝试创建一个简单的MacOSX应用程序,它显示文本输出,并记录我的程序。以下是我所做的:

1) 创建了一个Mac OS X UI项目

2) 在MainMenu.xib的应用程序窗口中间添加了一个“文本字段”组件

3) 添加了具有以下属性的新类“MainWindow.m”:

@property (assign) IBOutlet NSTextField *mainWindowText;
4) 将“引用出口”从文本字段组件连接到属性。我现在看到上面代码行左边有一个灰点

5) 在我的应用程序中,我创建了一个新线程,它创建了一个MainWindow实例。然后我等待5秒钟,尝试访问上面的mainWindowText变量,但它始终为空。我希望有一个非null变量,这样我就可以调用setStringValue:并随时修改文本

我试着用doText做一些类似的事情:当我点击enter时,我能够看到回调,并在那里写入文本。然而,我需要一种在任意时间修改文本的方法,我认为上面的属性是正确的方法

我还尝试添加一个@synthesis语句,但没有效果

有什么建议吗


更新:在阅读了一些帖子后,我认为问题在于我使用了错误的mainWindow对象。我尝试在NIB中创建一个NSObject,并将其自定义类类型设置为mainWindow,并在我的另一个类中创建了一个IBOutlet(类型mainWindow*),但它不允许我将这两个东西连接起来,因此,我不确定如何访问我添加到NIB中的NSObject对象。

NIB文件有一个所有者,这就是您要用来执行此操作的类。事情应该是这样的:

  • 创建类的实例(所有者,带出口)
  • 在初始化过程中,此类加载NIB文件
  • 加载NIB文件时,将配置出口引用
  • 一个回调(
    awakeFromNib
    )通知所有者所有配置都完成了
  • 完成后,您可以访问插座

    从最初的项目开始,你应该有一个NIB文件和一个拥有它的类,所以你应该用它来完成你的控制任务(当然,直到你有了更多的NIB档案的经验)