Когда метод какао хочет выбрать селектор в качестве параметра, как я могу выразить это в ruby? - PullRequest
0 голосов
/ 19 июля 2011

В этом руководстве по программированию листов в какао мне сказали вызвать следующий метод:

[[alert beginSheetModalForWindow:[searchField window] 
    modalDelegate:self 
    didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:) 
    contextInfo:nil];

Я написал это в рубине следующим образом:

alert.beginSheetModalForWindow(self.window, 
    modalDelegate:self,
    didEndSelector: :alertDidEnd,
    contextInfo:nil)

Конечно, часть didEndSelector неверна.Позже в моем коде у меня есть метод alertDidEnd, который принимает returnCode и contextInfo в качестве аргументов.Когда я посмотрел на self.methods, я заметил, что метод указан как alertDidEnd:returnCode:contextInfo:.В приведенном выше примере кода «@» используется для обозначения селектора.Это выполняется в Macruby с символом, но в этом случае символ будет содержать двоеточия, что недопустимо.Как мне представить это имя метода в виде символа?Я не смог найти эту информацию самостоятельно, где я должен был посмотреть, чего не нашел?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 19 июля 2011

Как отмечено в MacRuby документах , символы соединены селекторами.Итак, вы бы сделали:

alert.beginSheetModalForWindow(self.window, 
    modalDelegate:self,
    didEndSelector: :'alertDidEnd:returnCode:contextInfo:',
    contextInfo:nil)
1 голос
/ 19 июля 2011

Вы пробовали использовать Символ?Кажется, работает в RubyCocoa.

...