cocoa - 当 cocoa 方法需要选择器作为参数时,我如何在 ruby​​ 中表达它?

标签 cocoa selector macruby

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/

相关文章:

jquery - CSS 选择器 : Select TR where TD contains special value

regex - 用一个空行替换两个空行的正则表达式

Swift 处理 Actions 和 Selectors 问题 -

macos - 在辅助 NSWindow、Cocoa 上撤消

jquery - 使用 jQuery 检查 id 和 class

objective-c - 如何将徽章添加到来源列表?

nstextfield - 运行macruby时没有输入到NSTextField

ruby - Macruby prefPane - 没有任何效果

swift - NSScrollView是如何实现这样的内容 View 的呢?

objective-c - 提示用户输入密码的正确方法是什么?