MacRuby, Blattfehler
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
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,