在 this cocoa 中的工作表编程教程,我被告知调用以下方法:
[[alert beginSheetModalForWindow:[searchField window]
modalDelegate:self
didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:)
contextInfo:nil];
我用 ruby 编写如下,
alert.beginSheetModalForWindow(self.window,
modalDelegate:self,
didEndSelector: :alertDidEnd,
contextInfo:nil)
当然,didEndSelector
部分是错误的。后来在我的代码中,我有一个方法alertDidEnd,它将 returnCode 和 contextInfo 作为参数。当我查看 self.methods 时,我注意到该方法被列为alertDidEnd:returnCode:contextInfo: 。在上面的示例代码中,“@”用于标记选择器。这是在 Macruby 中使用符号完成的,但在这种情况下,符号将包含冒号,这是不允许的。我应该如何将该方法名称表示为符号?我无法自己找到此信息,我应该在哪里查找却没有查找?
谢谢!
最佳答案
如 MacRuby docs 中所述,符号与选择器桥接。所以你会这样做:
alert.beginSheetModalForWindow(self.window,
modalDelegate:self,
didEndSelector: :'alertDidEnd:returnCode:contextInfo:',
contextInfo:nil)
关于cocoa - 当 cocoa 方法需要选择器作为参数时,我如何在 ruby 中表达它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6740374/