Ah, that's very useful information. I actually maintain multiple NSTextStorage 
instances, one for each file that's being managed, and swap those in and out by 
doing setTextView on the storage instance. So is this somehow bypassing the 
chain of notifications that tells NSTextFinder that the string changed? Any way 
around that?

Many thanks,

Martin




On Sep 20, 2013, at 07:37 PM, Kevin Perry <kpe...@apple.com> wrote:

> 
> On Sep 20, 2013, at 10:00 AM, Martin Hewitson <martin.hewit...@aei.mpg.de> 
> wrote:
> 
>> Dear list,
>> 
>> I have an editor app which presents a list of files that can be edited. 
>> Selecting a file displays the text contents in an NSTextView subclass. On 
>> 10.7 and later the app supports using the FindBar. Searching the currently 
>> displayed text works fine the first time the find bar is used. But if 
>> another file is selected (so that the text in the textview changes) then the 
>> find bar shows nonsensical results, as if subsequent uses are still looking 
>> at the contents of the file that where displayed when the find bar was first 
>> invoked. 
>> 
>> Is there something I can/should do to 'reset' the find bar when the file 
>> being edited changes? I couldn't find anything in the documentation, and I 
>> couldn't figure out how to get the NSTextFinder instance that the textview 
>> is using, and even if I could, I don't see anything in the documentation to 
>> 'reset' its state, or set the string it should search. 
> 
> How are you replacing the NSTextView contents when switching files? The 
> 'reset' call for NSTextFinder when the client's content changes is 
> -noteClientStringWillChange. NSTextView is supposed to invoke this during 
> -shouldChangeTextInRanges:replacementStrings:. It's also invoked during 
> -[NSLayoutManager setTextStorage:], so when you switch your NSTextView 
> contents, you could load the new file's contents into a new NSTextStorage 
> instance, then invoke [[textStorage layoutManager] 
> replaceTextStorage:newTextStorage].
> 
> -KP
> 
>> Am I going about this all the wrong way? I thought this is one of those 'it 
>> just works' cases....
>> 
>> Many thanks,
>> 
>> Martin
>> 
>> 




_______________________________________________

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to