UITextFields не работает - PullRequest
       15

UITextFields не работает

2 голосов
/ 01 февраля 2012

Я создаю регистрационное представление с 14 UITextFields. Все они установлены на userInteractionEnabled, а делегат на «Владельца файла». Первые 8 текстовых полей будут включены при прикосновении. Следующие 6, однако, не будут реагировать на прикосновения. Я просто выкладываю это, чтобы увидеть, сталкивались ли другие разработчики iOS с подобными проблемами. В контроллере просмотра у меня есть только код для проверки поля электронной почты с помощью регулярного выражения при нажатии кнопки «Отправить». А также код для установки contentSize из scrollView. Я выложу все .m ниже.

#import "RegistrationViewController.h"

@implementation RegistrationViewController

@synthesize scrollView, txtFirstName, txtLastName, txtAge, txtGender, txtAddress1, txtAddress2, txtCity, txtState, txtCountry, txtPostal, txtEmail, txtPhone, txtAccount, txtCgAcct;

- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
scrollView.showsHorizontalScrollIndicator = NO;
scrollView.showsVerticalScrollIndicator = YES;
scrollView.scrollsToTop = YES;
scrollView.contentSize = CGSizeMake(320, 1044);

[super viewDidLoad];
}

-(void) validateData {

NSString *regEmail = txtEmail.text;
NSError *error = NULL;

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b" options:0 error:&error];
NSTextCheckingResult *match = [regex firstMatchInString:regEmail options:0 range:NSMakeRange(0, [regEmail length])];

}

-(void) postRegData {



}

-(IBAction)submitReg:(id)sender{
[self validateData];
}

- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:   (UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

1 Ответ

2 голосов
/ 10 октября 2012

Выяснили решение - но это было похоже на ошибку - вы можете удалить представление, которое находится под scrollview и иметь все элементы в самом scrollview, тогда все будет работать хорошо.Основная проблема была в отношении иерархии - scrollview => view => textview, а высота представления не изменялась, поэтому проблема невозможности выбрать какой-либо контент, когда они выходили за пределы представления, - вы можете проверить это, установив цвет фона для этого представления..

Если вам нужны свойства представления или с той же иерархией, то сначала создайте главное представление, затем прокрутите представление размера этого основного представления и дочерних представлений того же размера, а затем работайте с ними (вы можетеувеличить высоту просмотра, добавить текстовые поля ниже, а затем вернуть размер к нормальному значению - 460)

...