objective-c syntax rubymotion

objective c - Usando @selector en RubyMotion



objective-c syntax (2)

¿Cómo puedo traducir la siguiente llamada de método de ObjectiveC a la sintaxis de RubyMotion:

[self.faceView addGestureRecognizer:[ [UIPinchGestureRecognizer alloc] initWithTarget:self.faceView action:@selector(pinch:)]];

Llegué hasta aquí:

self.faceView.addGestureRecognizer( UIPinchGestureRecognizer.alloc.initWithTarget( self.faceView, action:???))

Entiendo que @selector(pinch:) indica una delegación al método de pinch objeto del receptor, pero ¿cómo haría esto en RubyMotion? Tal vez usando un bloque?


Debería poder usar una cadena para especificar el selector:

self.faceView.addGestureRecognizer( UIPinchGestureRecognizer.alloc.initWithTarget( self.faceView, action:''pinch''))


@gesture = UIPinchGestureRecognizer.alloc.initWithTarget(self.faceView,action:''pinch:'') self.faceView.addGestureRecognizer(@gesture) def pinch(foo) end

Si no desea que el controlador del método tome un argumento, use la action:''pinch'' lugar. Luego buscará un método como este:

def pinch end

Usar una var de instancia ( @gesture = ... ) es una buena idea aquí porque a veces los reconocedores de gestos y el GC no juegan bien juntos si no haces la var de gestos de una instancia de un UIViewController. (En mi experiencia)