2009-05-10 11 views
1

macrubyを使用して、変更するテキストフィールドを調べようとしています。macruby:AXObserverCallbackとしてrubyメソッドを使用

AXObserverCreateは、パラメータとしてAXObserverCallbackを想定しています。 ルビ関数をコールバックとして渡すにはどうすればよいですか?AX.m

My機能:

+ (AXError) addNotificationWithElement: (AXUIElementRef) element 
      forEvent:(CFStringRef) event_type 
      callback:(AXObserverCallback) acallback; 

これは私がこのメソッドを呼び出したい方法です:

rb_main.rb

def my_callback *args 
    p args 
end 

p AX.addNotificationWithElement ref, 
         forEvent:'AXValueChange', 
         callback: *** What to write here?*** 

見込んで私のaddNotificationWithElement関数に渡すためにどのようなコールバックパラメータとしてAXObserverCallback?参考のため

:あなたはどのProc(またはlambda)を渡すことができるはずApple documentation for AXObserverCallback

答えて

0

Appleのドキュメントに指定された引数をとります。私はAXObserverCallbackが必要な場合にそれをテストしていない

proc { |*args| my_callback *args } 

、しかし:あなたは(コールバックメソッドであるすなわち場合)あなたの例では、以下を使用することができ

proc { |observer, element, notification, refcon| ... } 

:この場合、これは一般的なパターンのようです。

関連する問題