objective-c - 通过后台点击和 Enter 连接两个发件人操作

标签 objective-c ios7 xcode5

好的,我有以下屏幕

user creation page

我有“退出时结束”和“编辑结束”事件连接到每个 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/

相关文章:

iOS 本地化在 Xcode 中不适用于 Objective-C 中的自定义标签

ios - UIButton 图像在多个 UITableViewCells 中更改

objective-c - 我可以在自定义并发队列的 dispatch_barrier 中安全地使用 'nonatomic' ivars 吗?

c++ - .cpp 文件中的 Objective C 语法?

ios - Facebook Audience Network (FBAudienceNetwork.framework) 导致错误

ios - 归档我的项目时 Apple Mach-O 链接器错误

objective-c - 为 Objective-C 对象定义 DTrace 兼容结构

iphone - IOS 7 + 对于力 Controller 方向为纵向

iOS BLE 外设在调用 discoveryServices 后立即保持断开连接

ios - 如何在XIB(Interface Builder)中使用UIPageViewController的子类来设置DataSource、Delegate和TransitionStyle