Re: Very strange problem about "setString" method of NSTextView.
Re: Very strange problem about "setString" method of NSTextView.
- Subject: Re: Very strange problem about "setString" method of NSTextView.
- From: Bill Bumgarner <email@hidden>
- Date: Sun, 30 Dec 2007 19:22:57 -0800
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:
This email sent to email@hidden