2016-04-20 6 views
0

私はPyObjC tutorialの後にいます。 Xcodeプロジェクトでは、MWController.pyをMainMenu.xibのオブジェクトとリンクさせました。 (私はCtrlキーを押しながら+ & MWControllerにファイルの所有者を設定してください)PyObjCとCocoaで関数とNSObjectをリンクできません

ここにコードです。

# 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は 'Text Field' NSObjectにリンクされています。検索: 'プッシュボタン' NSObjectとリンクしています。コードから、テキストフィールドに何かを入力してボタンを押すと、コンソールでメッセージが返されます。

しかし、ウィンドウおよびインタフェースは罰金築き上げましたが、コンソールは、示されたにもかかわらずときのビルドと実行、

  • (NSScrollView)に(NSApplicationの)から(のtableView)コンセントを接続するのに失敗しました:行方不明

  • 変数セッターまたはインスタンスは、(TextFieldを)接続に失敗しました(NSTextField)に(NSApplicationの)からの出口:欠落しているセッターやインスタンス変数

  • は、ターゲットクラスNSApplica、アクションを接続できませんでした。 -searchに応答しません:

「接続検査官」をチェックして、すべて正常にリンクしています。私は関数/メソッド名を変更しませんでした。私はまた、リンクを再度redidしました。それらのどれも働かない。

紛失しているものはありますか?

答えて

0

私は非常に簡単な間違いを発見しました。それがリンクしない理由はPyObjCとまったく関係ありません。

このファイルの所有者のクラスが変更されても、このquestionの回答で説明したように、MainMenu.xibは常にアプリケーションオブジェクトによって読み込まれます。

代わりに、新しいNSObjectを追加し、そのクラスをMWControllerに変更してMWController.pyとリンクすることができます。

関連する問題