On Tue, Aug 2, 2011 at 6:09 PM, Aki Inoue <a...@apple.com> wrote: > Hi Tom, > > Definitely write a Radar.
I just got this distilled down into an extremely simple demo project. rdar://problem/9886471 The demo project is here for any interested third parties: http://db.tt/7hA7i8m > One thing you could try is overriding both -checkTextInRange:types:options: & > -handleTextCheckingResults:forRange:types:options:orthography:wordCount: for > your field editor. > > You can have some kind of the field editor session ID. > > Every time a new field editor starts, you increment the ID. Then, inside > your -checkTextInRange:, you can pass the session ID via the options dict to > super. > > Inside -handleTextCheckingResult:, validate the session ID inside the options > dict against the current ID. Forward the message to super only when they > match. The problem isn't within -handleTextCheckingResult:…, but rather within the block that -handleTextCheckingResult:… passes to -[NSSpellChecker showCorrectionIndicatorOfType:…]. That block is assuming that whenever it gets executed, the text view will still be attached to the same field editor it was attached to when it was enqueued on the main thread. We would need to inject this session ID check into the completionHandler. The only way I can think of accomplishing that would be to swizzle -showCorrectionIndicatorOfType:…. --Kyle Sluder _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) 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 arch...@mail-archive.com