无法在PyObjC和Cocoa

时间:2016-04-20 05:12:46

标签: python-2.7 cocoa xcode7 pyobjc

我关注PyObjC tutorial。在Xcode项目中,我有一个MWController.py与MainMenu.xib中的对象链接。 (我按住了ctrl + drag&将File&#39的所有者设置为MWController。)

这是代码;

# MWController.py
import objc
from Foundation import *

class MWController(NSObject):
    tableView = objc.IBOutlet()
    textField = objc.IBOutlet()
    results = []

    @objc.IBAction
    def search_(self,sender):
        search_value = self.textField.stringValue()
        NSLog(u"Search: %s" % search_value)

因此,tableView与“表格视图”相关联。 NSObject的。 textField与'文本字段' NSObject的。搜索:与“按钮”相关联。 NSObject的。从代码中,如果我在文本字段中输入任何内容并点击按钮,它将在控制台中返回消息。

然而,在构建和运行时,即使窗口和界面构建正常但控制台显示,

  • 无法连接(tableView)插座(NSApplication)到(NSScrollView):缺少setter或实例变量

  • 无法连接(textField)插座(NSApplication)到(NSTextField):缺少setter或实例变量

  • 无法连接操作,目标类NSApplication不响应-search:

我检查过'连接检查员'他们都很好地联系在一起。我没有更改任何函数/方法名称。我也重新点了链接。他们都没有工作。

我有什么遗失的吗?

1 个答案:

答案 0 :(得分:0)

我发现了一个非常简单的错误。它没有链接的原因与PyObjC完全没有关系。

正如在此question的答案中所解释的那样,即使文件所有者中的类已更改,MainMenu.xib也始终由应用程序对象加载。

相反,我可以添加一个新的NSObject并将其类更改为MWController以将其与MWController.py链接。