Mailing Lists: Apple Mailing Lists

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

Very strange problem about "setString" method of NSTextView.



Hi,

I want NSTextView to scroll to one specific position after opened one text file (some kind like a bookmark).

Following is my code:

[textView setString:contentString];

NSNumber *scrollerPosition = [bookmarks objectForKey:filePath];
if (scrollerPosition)
{
float maxPosition = NSMaxY([[scrollView documentView] frame]) - NSHeight([[scrollView contentView] bounds]);

if ([scrollerPosition floatValue] < maxPosition)
{
NSPoint newPosition = NSMakePoint(0.0, [scrollerPosition floatValue]);

[[scrollView documentView] scrollPoint:newPosition];
}
}


I found the value of "maxPosition" always be 0.0 when upper code be invoked every first time, so I think the "setString" method of NSTextView is an async method, the size of scrollView may not be changed immediately after "setString" be invoked.

Then I tried to use

[textView performSelectorOnMainThread:@selector(setString) withObject:contentString waitUntilDone:YES]

instead of

[textView setString:contentString]

But it still won't work..... What should I do now?

Allen Dang
email@hidden



_______________________________________________

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


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.