Frage

Ich laufe mit MacRuby 0,5 und ich habe eine Methode:

 attr_accessor :bookmarkSheet, :mainWindow

def createBookmark(sender)
  NSApp.beginSheet(bookmarkSheet, 
   modalForWindow:mainWindow, 
   modalDelegate:self, 
   didEndSelector:nil,
   contextInfo:nil)   
 end

, die angeblich eine Blechtafel auf dem Hauptfenster zu öffnen. Jedes Mal, wenn ich diese Methode ausführen, bekomme ich

2009-10-10 12:27:45.270 Application[45467:a0f] nil is not a symbol

Alle Gedanken, warum ich diesen Fehler? Ich kann nicht überall zu finden scheinen, dass die Listen der Grund, warum ich diese Störung erhalte. Dank

War es hilfreich?

Lösung

Peter ist richtig, didEndSelector: einen Wähler erwartet, sollten Sie versuchen, so etwas wie:

def bookmark_created
 puts "Bookmark created"
end

def createBookmark(sender)
  NSApp.beginSheet(bookmarkSheet, 
   modalForWindow:mainWindow, 
   modalDelegate:self, 
   didEndSelector:"bookmark_created:",
   contextInfo:nil)   
 end

Beachten Sie, wie ich hinzugefügt einen Doppelpunkt nach dem Namen des Verfahrens zu nennen. Auch er sieht aus wie ein Bug mit MacRuby Beta-Version, ich möchte Sie ermutigen, den Fehler auf dem MacRuby Tracker melden: http://www.macruby.org/trac/newticket

Hier ist das Beispiel von Apples Dokumentation gegeben:

- (void)showCustomDialog: (NSWindow *)window
// User has asked to see the dialog. Display it.
{
    if (!myCustomDialog)
        [NSBundle loadNibNamed: @"MyCustomDialog" owner: self];

    [NSApp beginSheet: myCustomDialog
            modalForWindow: window
            modalDelegate: nil
            didEndSelector: nil
            contextInfo: nil];
    [NSApp runModalForWindow: myCustomDialog];
    // Dialog is up here.
    [NSApp endSheet: myCustomDialog];
    [myCustomDialog orderOut: self];
}

Wie Sie sehen können, sollten Sie in der Lage sein, den End-Selektor als Null zu setzen. In der Zwischenzeit arbeitet meine Abhilfe nur in Ordnung.

Viel Glück,

  • Matt

Andere Tipps

Weil Sie nil als didEndSelector: vorbei sind. Sie benötigen einen Wähler dort passieren.

Nur eine kurze Notiz für alle diesen Thread zu lesen. Wenn Sie Fehler in MacRuby zu finden, auch wenn Sie sich nicht sicher sind, mailen Sie bitte die Mailingliste http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel und einen Fehlerbericht: https://www.macruby.org/trac/newticket

Sie können natürlich auch hier posten und fragen auf Twitter, aber wenn Sie etwas falsch mit MacRuby finden, und Sie wollen es fest, was Sie wirklich brauchen wirklich einen Fehlerbericht einreichen.

Update: Ticket eingereicht hier . (Check auf dem Ticket für Statusaktualisierung)

Danke,

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top