2 番目の WindowController によって制御されるダイアログ用の 2 番目のウィンドウ (シート) があります。何らかの理由で、シートが表示された後、アクションが NSObject サブクラスで呼び出されることはありません。アクションを確認して再リンクしました。コードは runModalForWindow_ まで実行されますが、その後は ok または cancel アクションを受け取りません。そのため、シートが消えることはありません。ここで何が欠けていますか?runModalForWindow_を実行するpyobjcの例がWebサイトで見つからないようです...
@objc.IBAction
def okSelected(self, sender):
self.dialogResult = objc.YES
NSLog("OK")
#NSApp.endSheet_(self.newTurnWindowOutlet)
NSApp.stopModalWithCode_(objc.OK)
@objc.IBAction
def cancelSelected(self, sender):
self.dialogResult = objc.NO
#NSApp.endSheet_(self.newTurnWindowOutlet)
NSApp.stopModalWithCode_(objc.NO)
def runSheet(self, parent):
NSApp.beginSheet_modalForWindow_modalDelegate_didEndSelector_contextInfo_(
self.newTurnWindowOutlet, parent, None,
self.sheetDidEnd_returnCode_contextInfo_, None)
NSLog("runModelForWindow")
result = NSApp.runModalForWindow_(self.newTurnWindowOutlet)
NSLog(str(result))
NSApp.endSheet_(self.newTurnWindowOutlet)
self.newTurnWindowOutlet.orderOut_(self)
return self.dialogResult