问问题
667 次
2 回答
0
acceptInputForMode:beforeDate: 只运行一次循环。一旦处理了任何输入(定时器除外),它就会退出。runUntilDate:但是继续运行循环,直到到达日期。
于 2011-01-03T00:30:53.077 回答
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"
基本上,您需要在分派 runloop 请求之前定义时间戳,否则主循环在获取指令之前就存在。正如您所发现的,这并不是真正的 MacRuby 错误,但仍然希望对您有所帮助。
于 2010-11-22T07:55:24.947 回答