为什么我的插座没有?

时间:2011-07-18 20:38:05

标签: objective-c cocoa

我遇到了可可项目的问题。我正在显示一个由NSButtons组成的键盘,我希望当我点击其中一个键时,标签会被添加到NSTextField中。我有一个控制器,我用作单例,所以每个键“知道”如何访问控制器。在控制器中,我有一个连接到NSTextField的插座。当我点击一个键时,没有任何反应。所以我在mouseDown事件上使用了类似NSLog(@"%@", [[[OakController] sharedInstance] textarea])的东西,在控制台输出中,我得到(null)

长话短说,我的插座设置为零,我不知道为什么会这样,或者如何解决...

以下是控制器的代码:https://gist.github.com/1090564。很抱歉缺少语法着色。

感谢您阅读!

1 个答案:

答案 0 :(得分:4)

我的猜测是你实际上有多个OakController实例而不是你期望的实例。您是否将蓝色立方体拖入IB文档并将其自定义类更改为OakController?这将每次分配和初始化一个新对象。我猜你的sharedInstance方法也会分配和初始化一个实例。

尝试将awakeFromNib方法添加到OakController,并添加一个断点。记录自己的指针值。在你的第二种情况下,插座出乎意料地为零,也记录了自己的指针地址。