好的,我有以下屏幕
我有“退出时结束”和“编辑结束”事件连接到每个 UITextField IBOutlet,并且这些事件连接到一个名为 userDoneEditing 的方法,我还有一个 UITapGestureRecognizer,它具有 <强>@selector(dismissKeyboard) 代码如下:
- (void)viewDidLoad
{
_userFirstNameEntry = UserFirstName.text;
_userLastNameEntry = UserLastName.text;
_emailEntry = UserEmail.text;
_userEntry = UserUser.text;
_userPasswordEntry = UserPassword.text;
[super viewDidLoad];
[self.scroller setScrollEnabled:YES];
[self.scroller setContentSize:(CGSizeMake(360, 760))];
//initilizing UITapGestureRecognizer referenced by *tap
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(dismissKeyboard)];
[self.view addGestureRecognizer:tap];
}
- (IBAction)userDoneEditing:(id)sender
{
if(sender == UserFirstName)
{
NSLog(@"textField *UserFirstName did end editing");
}
else if(sender == UserLastName)
{
NSLog(@"textField *UserLastName did end editing");
}
else if(sender == UserEmail)
{
NSLog(@"textField *UserEmail did end editing");
}
else if(sender == UserUser)
{
NSLog(@"textField *UserUser did end editing");
}
else if(sender == UserPassword)
{
NSLog(@"textField *UserPassword did end editing");
}
}
- (void)dismissKeyboard
{
[UserFirstName resignFirstResponder];
[UserLastName resignFirstResponder];
[UserEmail resignFirstResponder];
[UserUser resignFirstResponder];
[UserPassword resignFirstResponder];
}
@end
问题: 我只需要我的missKeyboard 方法来识别发件人,以便我可以限定发件人指定的操作,我该怎么做??
最佳答案
您可以实现 UITextFieldDelegate 协议(protocol)来帮助跟踪 UITextField 对象发生的情况。
在 header 界面中添加协议(protocol),并在 viewDidLoad 中为每个 UITextField 分配一个委托(delegate)。
示例:
UserFirstName.delegate = self;
UITextFieldDelegate 的所有协议(protocol)方法都是可选的,但是您很可能需要 textFieldDidBeginEditing: 、 textFieldDidEndEditing: 和 textFieldShouldReturn:
这些方法中的每一个都会被传递给调用该方法的 UITextField,因此您可以跟踪第一响应者的更改、更新实例变量并做出决策。
在您的missKeyboard方法中,您可以检查这些实例变量的状态。
关于objective-c - 通过后台点击和 Enter 连接两个发件人操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20755356/