В PyObjC как вы получите конец листа после использования runModalForWindow_? - PullRequest
1 голос
/ 14 февраля 2010

У меня есть дополнительное окно (лист) для диалога, управляемого вторым WindowController. По некоторым причинам действия никогда не вызываются в подклассе NSObject после отображения листа. Я подтвердил и повторно связал действия. Код запускается до runModalForWindow_, но затем никогда не получает действия ok или cancel. Таким образом, лист никогда не уходит. Что мне здесь не хватает? Я не могу найти какие-либо примеры pyobjc на своем сайте, который выполняет runModalForWindow _...

    @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

1 Ответ

2 голосов
/ 14 февраля 2010

Ваши строки

    @objc.IBAction
    def okSelected(self, sender):

должно быть

    @objc.IBAction
    def okSelected_(self, sender):

и т.д.. Помните, что каждое двоеточие в селекторе Objective C становится _ в Python!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...