On 2010 Mar 29, at 14:30, has wrote:
> The Apple Event Manager supports suspend and resume
Great tip, has. I searched and found
Cocoa Scripting Guide
How Cocoa Applications Handle Apple Events
Suspending and Resuming Apple Events and Script Commands
In there, it looks like -suspendExecution and -resumeExecutionWithResult: have
been provided for my situation exactly. (I am using Cocoa Scripting and
NSScriptCommand.)
And it appears that we have solved the problem. But since I couldn't find any
sample code using -suspendExecution or -resumeExecutionWithResult:, I shall
describe this so I can find it in the list archives next time I forget :)
In my subclass' implementation of performDefaultImplementation:,
[[SSYOperationQueue mainQueue] setScriptCommand:self] ;
[self suspendExecution] ;
In the first line, I stash the command away in an ivar for later, which is
necessary because -suspendExecution causes -currentCommand to subsequently
return nil.
Then in my asynchronous completion routine,
NSScriptCommand* scriptCommand = [[SSYOperationQueue maenQueue]
scriptCommand] ;
if (!ok) {
[scriptCommand setScriptErrorNumber:errorValue] ;
[scriptCommand setScriptErrorString:errorString] ;
}
[scriptCommand resumeExecutionWithResult:nil] ;
Seems to work perfectly, although it's kind of spooky how it works. Maybe
they're setting up a sleeping thread for me behind the scenes.
And thank you very much has!! You really kept me from making a big mistake
today.
_______________________________________________
Cocoa-dev mailing list ([email protected])
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]