Как объединить два UITextView в iPhone? - PullRequest
0 голосов
/ 03 февраля 2012

Я работаю с автозаполнением текста в textview, поэтому я использую два UITextView, первый UITextView (duplicateTextView) является фоновым текстом, похожим на текст водяного знака, а второй UITextView (customTextView) - ввод пользователя текст. Когда пользователь вводит многострочный текст в режиме просмотра текста, customTextView прокручивается автоматически, но duplicateTextView не прокручивается. Итак, как я могу прокрутить duplicateTextView, когда вводится многострочный текст? Возможно ли объединить два UITextView вместе в iPhone?

Здесь я попробовал исходный код:

duplicateTextView = [[UITextView alloc] initWithFrame:CGRectMake(0, 50, 320, 100)];
duplicateTextView.delegate = self;
duplicateTextView.scrollEnabled = YES;
duplicateTextView.font = [UIFont fontWithName:@"Helvetica" size:14];
duplicateTextView.textColor = [UIColor lightGrayColor];
[self.view addSubview:duplicateTextView];

customTextView = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)];
customTextView.layer.borderWidth = 2.0;
customTextView.delegate = self;
customTextView.backgroundColor = [UIColor clearColor];
customTextView.layer.borderColor = [UIColor blackColor].CGColor;
customTextView.font = [UIFont fontWithName:@"Helvetica" size:14];
customTextView.textColor = [UIColor blackColor];
[duplicateTextView addSubview:customTextView];

1 Ответ

0 голосов
/ 03 февраля 2012

Как попытался объяснить @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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...