我有一个辅助窗口(工作表),用于由secondard WindowController控制的对话框。出于某种原因,在显示工作表之后,操作永远不会在NSObject子类中调用。我已经确认并重新联系了这些行动。代码运行runModalForWindow_但后来从未收到ok或cancel操作。这张纸永远不会消失。我在这里错过了什么?我似乎无法在他们的网站上找到任何执行runModalForWindow _...
的pyobjc示例 @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
答案 0 :(得分:2)
你的行
@objc.IBAction
def okSelected(self, sender):
应该是
@objc.IBAction
def okSelected_(self, sender):
等。请记住,Objective-C选择器中的每个冒号都变为Python中的_!