Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Very strange problem about "setString" method of NSTextView.



On Dec 30, 2007, at 6:54 PM, Allen Dang wrote:
That wouldn't work like you expect. Try something like this instead:

- (void) mySetString:(NSString *) contentString
{
	[textView setString: contentString];
	[self performSelector: @selector(updateBookmark) withObject: nil
afterDelay: 0.0];
}

- (void) updateBookmark
{
	// The code that sets the bookmark
}
Thanks for you suggestion. But I have to say this is not a good solution....
I still cannot know when the NSScrollView be updated after "setString". Upper solution is too risky when I open a big text file.

You might need to dive into the supporting classes used within the NSText ecosystem. In particular, NSLayoutManager offers this delegate method:


- (void)layoutManager:(NSLayoutManager *)layoutManager didCompleteLayoutForTextContainer:(NSTextContainer *)textContainer atEnd:(BOOL)layoutFinishedFlag;
// This is sent whenever a container has been filled. This method can be useful for paginating. The textContainer might be nil if we have completed all layout and not all of it fit into the existing containers. The atEnd flag indicates whether all layout is complete.


You can grab the text view's layout manager via the -layoutManager method. Setting your class as a delegate and then implementing the above method to scroll to the desired location may work?

(I say "may" because I haven't poked around in this area for a long long time.)

b.bum

_______________________________________________

Cocoa-dev mailing list (email@hidden)

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/email@hidden

This email sent to email@hidden
References: 
 >Re: Very strange problem about "setString" method of NSTextView. (From: Allen Dang <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.