2 に答える
0
少し奇妙ですが、回避策は次のとおりです。
framework 'Foundation'
framework 'AppKit'
class KCUpcase
def upcase(pasteboard, userData: s_userdata, error: s_error)
incoming_string = pasteboard.stringForType "public.utf8-plain-text"
outgoing_string = incoming_string.upcase
pasteboard.clearContents
pasteboard.setString(outgoing_string, forType: "public.utf8-plain-text")
end
end
puts "Starting…"
NSRegisterServicesProvider(KCUpcase.new, "Upcase")
puts "Registered…"
later = NSDate.dateWithTimeIntervalSinceNow(5)
NSRunLoop.currentRunLoop.runUntilDate later
puts "Done"
基本的に、ランループ リクエストをディスパッチする前にタイムスタンプを定義する必要があります。そうしないと、命令を取得する前にメイン ループが存在します。お気づきのように、これは実際には MacRuby のバグではありませんが、うまくいけば役に立ちます。
于 2010-11-22T07:55:24.947 に答える
0
acceptInputForMode:beforeDate: ループを 1 回だけ実行します。入力 (タイマー以外) が処理されるとすぐに終了します。runUntilDate: ただし、日付に達するまでループを実行し続けます。
于 2011-01-03T00:30:53.077 に答える