以编程方式调用 textFieldShouldReturn

2024-08-12移动开发问题
4

本文介绍了以编程方式调用 textFieldShouldReturn的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

当前项目运行在cocos2d v2下.

The current project runs under cocos2d v2.

我有一个简单的 UITextField 添加到 CCLayer.

I have a simple UITextField added to a CCLayer.

每当用户触摸文本字段时,就会出现一个键盘.

Whenever, the user touch the textField, a keyboard appears.

然后当用户触摸返回"按钮时,键盘消失并清除输入.

Then when the user touch the "return" button, the keyboard disappear and clears the input.

我试图做的是当用户触摸 UITextField 之外的任何地方时做同样的事情.

What I tried to do is to make the same thing when the user touches anywhere outside the UITextField.

我确实找到了一种方法并且它有效:

I did find a method and it works :

- (void)ccTouchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
    UITouch* touch = [touches anyObject];
    if(touch.view.tag != kTAGTextField){
        [[[[CCDirector sharedDirector] view] viewWithTag:kTAGTextField] resignFirstResponder];
    }
}

但是,这个方法并没有调用函数:

However, this method doesn't call the function :

- (BOOL)textFieldShouldReturn:(UITextField *)textField

我用这个函数做一些计算并清除输入.因此,当文本字段为resignFirstResponder"时,我希望 ccTouchesBegan 输入此 textFieldShouldReturn.

I use this function to do some calculation and clear the input. Therefore, I would like ccTouchesBegan to enter this textFieldShouldReturn when the textfield is "resignFirstResponder".

推荐答案

来自 苹果文档:

textFieldShouldReturn:询问委托文本字段是否应处理按下返回按钮.

textFieldShouldReturn: Asks the delegate if the text field should process the pressing of the return button.

所以它只有在用户点击返回按钮时才会被调用.

So it is only called when the user taps the return button.

我宁愿创建一个用于计算和输入清除的方法,并在需要时调用该方法.示例:

I would rather create a method for the calculation and input clearing, and call that method whenever you want it to be called. Example:

- (void)calculateAndClearInput {
    // Do some calculations and clear the input.
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
    // Call your calculation and clearing method.
    [self calculateAndClearInput];
    return YES;
}

- (void)ccTouchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
    UITouch* touch = [touches anyObject];
    if (touch.view.tag != kTAGTextField) {
        [[[[CCDirector sharedDirector] view] viewWithTag:kTAGTextField] resignFirstResponder];
        // Call it here as well.
        [self calculateAndClearInput];
    }
}

这篇关于以编程方式调用 textFieldShouldReturn的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

硬件音量按钮更改应用程序音量
Hardware Volume buttons change in app volume(硬件音量按钮更改应用程序音量)...
2024-08-12 移动开发问题
10

Cocos2d - 如何检查不同层中对象之间的交集
Cocos2d - How to check for Intersection between objects in different layers(Cocos2d - 如何检查不同层中对象之间的交集)...
2024-08-12 移动开发问题
8

恢复游戏 cocos2d
Resume game cocos2d(恢复游戏 cocos2d)...
2024-08-12 移动开发问题
6

突出显示朗读文本(在 iPhone 的故事书类型应用程序中)
Highlight Read-Along Text (in a storybook type app for iPhone)(突出显示朗读文本(在 iPhone 的故事书类型应用程序中))...
2024-08-12 移动开发问题
9

Cocos2D + 仅禁用 Retina iPad 图形
Cocos2D + Disabling only Retina iPad Graphics(Cocos2D + 仅禁用 Retina iPad 图形)...
2024-08-12 移动开发问题
10

正确的 cocos2d 场景重启?
Proper cocos2d scene restart?(正确的 cocos2d 场景重启?)...
2024-08-12 移动开发问题
7