.h文件
#import <UIKit/UIKit.h>
@interface AddEventViewController : UIViewController <UITextFieldDelegate>
@end
.m文件
@property (weak, nonatomic) IBOutlet UITextField *textField1;
@property (weak, nonatomic) IBOutlet UITextField *textField2;
@property (weak, nonatomic) IBOutlet UITextField *textField3;
- (IBAction)textFieldReturn:(id)sender;
@end
@implementation AddEventViewController
@synthesize textField1, textField2, textField3;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (IBAction)textFieldReturn:(id)sender;
{
[sender resignFirstResponder];
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.textField1.delegate = self;
textField1.delegate = self;
// Do any additional setup after loading the view.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)touchesBegan: (NSSet *) touches withEvent: (UIEvent *)event
{
if (textField1)
{
if ([textField1 canResignFirstResponder]) [textField1 resignFirstResponder];
}
[super touchesBegan: touches withEvent: event];
if (textField2)
{
if ([textField2 canResignFirstResponder]) [textField2 resignFirstResponder];
}
[super touchesBegan: touches withEvent: event];
if (textField3)
{
if ([textField3 canResignFirstResponder]) [textField3 resignFirstResponder];
}
[super touchesBegan: touches withEvent: event];
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField1 resignFirstResponder];
return NO;
[textField2 resignFirstResponder];
return NO;
[textField3 resignFirstResponder];
return NO;
}
@end
Ok so im getting the yellow bug symbol on the lines:
- (void)viewDidLoad
{
[super viewDidLoad];
self.textField1.delegate = self;
textField1.delegate = self;
}
我不知道如何委派我的所有textFields?我如何使这个textFieldReturn适用于我的所有textFields .. viewDidLoad区域必须是问题,因为其他一切都很好......
答案 0 :(得分:1)
将UITextViewDelegate切换到头文件中的UITextFieldDelegate。这应该做到这一点。如果你还有问题,请告诉我。
答案 1 :(得分:1)
在.h文件中设置textField
的代理而不是textView
。
&安培;在.m文件中替换以下textFieldShouldReturn
方法
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
if (textField == textField1)
{
[textField1 resignFirstResponder];
}
else if (textField == textField2)
{
[textField2 resignFirstResponder];
}
else if (textField == textField3)
{
[textField3 resignFirstResponder];
}
return YES;
}
对于使用以下代码的textView。
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if([text isEqualToString:@"\n"])
{
[textView resignFirstResponder];
return NO;
}
return YES;
}
答案 2 :(得分:1)
标记您的文本字段,以在委托方法中区分它们。如果您不希望区分,那么只需使用您在委托方法中获得的引用。
如果使用标签,可以使用开关。
switch(sender.tag)
{
case <case value>
//your code
break;
}