Как попытался объяснить @KAREEM MAHAMMED, вы добавляете customTextView к вашему duplicateTextView в последней строке кода, которую вы опубликовали.Возможно, вы хотели сделать следующее: [self.view addSubview:customTextView];
Возможно, я неправильно понял ваш вопрос.Я добавляю некоторый код, чтобы вы могли увидеть рабочий пример:
.h файл:
#import <UIKit/UIKit.h>
@class TestViewController;
@interface TestAppDelegate :
NSObject <UIApplicationDelegate, UIScrollViewDelegate, UITextViewDelegate>
{
UIWindow *window;
TestViewController *viewController;
UITextView *customTextView;
UITextView *duplicateTextView;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet TestViewController *viewController;
-(void)syncScroll;
@end
и файл .m:
#import "TestAppDelegate.h"
#import "TestViewController.h"
@implementation TestAppDelegate
@synthesize window;
@synthesize viewController;
#pragma mark -
#pragma mark Application lifecycle
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// custom
customTextView = [[[UITextView alloc] initWithFrame:CGRectMake(10.0, 10.0, 80.0, 125.0)] autorelease];
customTextView.backgroundColor = [UIColor whiteColor];
[viewController.view addSubview:customTextView];
// duplicate
duplicateTextView = [[[UITextView alloc] initWithFrame:CGRectMake(170.0, 10.0, 80.0, 125.0)] autorelease];
duplicateTextView.backgroundColor = [UIColor whiteColor];
duplicateTextView.editable = NO;
duplicateTextView.scrollEnabled = NO;
[viewController.view addSubview:duplicateTextView];
// whenever text is entered into the customTextView then sync scrolling
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(syncScroll)
name:UITextViewTextDidChangeNotification
object:customTextView];
customTextView.delegate = self;
// Add the view controller's view to the window and display.
[self.window addSubview:viewController.view];
[self.window makeKeyAndVisible];
// have keyboard show up in customTextView
[customTextView becomeFirstResponder];
return YES;
}
#pragma mark -
#pragma mark Memory management
- (void)dealloc {
[viewController release];
[window release];
[super dealloc];
}
#pragma mark -
#pragma mark Other Methods
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
[self syncScroll];
}
-(void)syncScroll {
duplicateTextView.text = customTextView.text;
[duplicateTextView setContentOffset:customTextView.contentOffset];
}
@end