我遇到了可可项目的问题。我正在显示一个由NSButtons组成的键盘,我希望当我点击其中一个键时,标签会被添加到NSTextField中。我有一个控制器,我用作单例,所以每个键“知道”如何访问控制器。在控制器中,我有一个连接到NSTextField的插座。当我点击一个键时,没有任何反应。所以我在mouseDown事件上使用了类似NSLog(@"%@", [[[OakController] sharedInstance] textarea])
的东西,在控制台输出中,我得到(null)
。
长话短说,我的插座设置为零,我不知道为什么会这样,或者如何解决...
以下是控制器的代码:https://gist.github.com/1090564。很抱歉缺少语法着色。
感谢您阅读!
答案 0 :(得分:4)
我的猜测是你实际上有多个OakController实例而不是你期望的实例。您是否将蓝色立方体拖入IB文档并将其自定义类更改为OakController?这将每次分配和初始化一个新对象。我猜你的sharedInstance方法也会分配和初始化一个实例。
尝试将awakeFromNib方法添加到OakController,并添加一个断点。记录自己的指针值。在你的第二种情况下,插座出乎意料地为零,也记录了自己的指针地址。