Ich habe benutzerdefinierte Zelle auf Tabellenansicht aufgerufen. Zelle hat ein Textfeld. Zum Beispiel, wenn ich 4 Zellen mit Textfeld habe. Ich bin in der Lage, auf drei Textfelder und verwandte Textfelder zu tippen begann mit der Bearbeitung. aber für eines der Textfelder, wenn ich darauf tippe - Textfeld wurde mit der Bearbeitung begonnen wird nicht aufgerufen. Hier ist meine MethodeTextfeld begann Bearbeitung wird nicht auf benutzerdefinierte Zelle
-(void)textFieldDidBeginEditing:(UITextField *)textField{
NSString *SelectedIndexString = [[NSUserDefaults standardUserDefaults]
stringForKey:@"SelectedIndex"];
NSInteger selectionCount = [SelectedIndexString integerValue];
NSLog(@"%ld",(long)selectionCount);
if (selectionCount) {
self.accountNameTxtField.enabled = NO;
}
else{
self.accountNameTxtField.enabled = YES;
}
}
// STTableViewCell
@interface STTableViewCell() <UITextFieldDelegate>
- (void)awakeFromNib {
[super awakeFromNib];
radioBtn.alpha = 0; // Initialization code [self customBorder];
// Setting the OTP label color to the RGB blue
self.OTPLabel.textColor = [UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0];
// Set delegate to textfield
self.accountNameTxtField.delegate=self;
}
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(incomingNotification:) name:@"No Change" object:nil];
if (!editing)
{
radioBtn.alpha = 0;
isTableviewEditing=NO;
if (![self.authURL.name isEqual:accountNameTxtField.text]) {
self.accountNameTxtField.text = [self.accountNameTxtField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
if (accountNameTxtField.text.length >= 1)
{
// Write out the changes.
descriptionBlank = NO;
self.authURL.name = self.accountNameTxtField.text;
[self.authURL saveToKeychain];
}
else{
[accountNameTxtField resignFirstResponder];
[self.delegate cellDidTap:self];
self.accountNameTxtField.text =self.authURL.name;
descriptionBlank = YES;
}
}
accountNameTxtField.userInteractionEnabled=NO;
[accountNameTxtField resignFirstResponder];
for (CALayer *layer in accountNameTxtField.layer.sublayers) {
if ([layer.name isEqualToString:@"Gradient"])
{
[layer setHidden:YES];
break;
}
}
progressView.alpha=1.0;
OTPLabel.alpha=1.0;
}
else
{
radioBtn.alpha = 1;
isTableviewEditing=YES;
for (CALayer *layer in accountNameTxtField.layer.sublayers) {
if ([layer.name isEqualToString:@"Gradient"])
{
[layer setHidden:NO];
break;
}
}
OTPLabel.alpha=0.0;
progressView.alpha=0.0;
accountNameTxtField.userInteractionEnabled=YES;
}
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];
if (selected) {`selectHilightCount++;
self.accountNameTxtField.enabled = NO;
} else {
self.accountNameTxtField.enabled = YES;
}`
}
eingerichtet haben Sie den Delegaten hepls wird? – dirtydanee
Ja. es wird für andere Textfelder richtig aufgerufen. – Sadik
Könnten Sie bitte das Stück Code zeigen, wo Sie den Delegierten einrichten? Haben Sie auch 'prepareForSegue' für Ihre' UITableViewCell' überschrieben? – dirtydanee