gpt4 book ai didi

ruby - MacRuby,工作表错误

转载 作者:行者123 更新时间:2023-12-03 17:18:03 24 4
gpt4 key购买 nike

我正在使用 MacRuby 0.5 运行,并且我有一个方法:

 attr_accessor :bookmarkSheet, :mainWindow

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

这应该在主窗口上打开一个工作表面板。然而,每当我运行这个方法时,我都会得到

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

对于为什么我会收到此错误有什么想法吗?我似乎找不到任何地方列出我收到此错误的原因。谢谢

最佳答案

Peter 是对的,didEndSelector: 正在等待一个选择器,你应该尝试如下操作:

def bookmark_created
puts "Bookmark created"
end

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

请注意我如何在要调用的方法名称后面添加冒号。另外,它看起来像是 MacRuby beta 版本的一个错误,我鼓励您在 MacRuby 跟踪器上报告该错误:http://www.macruby.org/trac/newticket

这是Apple文档给出的示例:

- (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];
}

如您所见,您应该能够将结束选择器设置为 nil。与此同时,我的解决方法将会很好地发挥作用。

祝你好运

  • 马特

关于ruby - MacRuby,工作表错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1548391/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com