我关注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:
我检查过'连接检查员'他们都很好地联系在一起。我没有更改任何函数/方法名称。我也重新点了链接。他们都没有工作。
我有什么遗失的吗?
答案 0 :(得分:0)
我发现了一个非常简单的错误。它没有链接的原因与PyObjC完全没有关系。
正如在此question的答案中所解释的那样,即使文件所有者中的类已更改,MainMenu.xib也始终由应用程序对象加载。
相反,我可以添加一个新的NSObject并将其类更改为MWController以将其与MWController.py链接。