Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 单击UITextField时如何调用方法?_Iphone_Uitextfield - Fatal编程技术网

Iphone 单击UITextField时如何调用方法?

Iphone 单击UITextField时如何调用方法?,iphone,uitextfield,Iphone,Uitextfield,我想问的是,我如何调用一个方法,就像我在iphone UITextField中单击(触按开始写入)一样,就像我们单击UIButton并将方法放入“addTarget”中一样,UITextFields有什么方法吗?您可以设置textField的委托,并在其中实现textField shouldbeginediting:方法-该方法将在用户点击字段时调用,然后再进行编辑 有关可用的更多方法,请参见UITextFieldDelegate参考。在-(BOOL)textField shouldBegine

我想问的是,我如何调用一个方法,就像我在iphone UITextField中单击(触按开始写入)一样,就像我们单击UIButton并将方法放入“addTarget”中一样,UITextFields有什么方法吗?

您可以设置textField的委托,并在其中实现
textField shouldbeginediting:
方法-该方法将在用户点击字段时调用,然后再进行编辑

有关可用的更多方法,请参见
UITextFieldDelegate
参考。

-(BOOL)textField shouldBeginediting:(UITextField*)textField
-(void)textfieldDiBeginediting:(UITextField*)textField

如果要阻止textfield像textfield一样运行,应该使用第一种方法。例如,如果要在模式视图中打开textfield编辑器。如果不希望出现这种行为,可以在那里返回NO


编辑:以下是调用myMethod的代码:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 
    [self myMethod]; 
    return YES; 
}
我想这会有帮助的

您可以编写如下代码:

[YourTextField addTarget:self action:@selector(myMethod:) forControlEvents:UIControlEventEditingDidBegin];

-(void)myMethod
{
 [YourTextField resignFirstResponder];
 //Do whatever you want
}

我怎么能像你说的那样,我已经实现了这个方法,但是我想调用一个用户定义的方法,所以你可以给我编码,我的方法签名是-(void)myMethod;为什么不想使用委托方法?您也可以使用自定义方法作为通知处理程序收听UITextFieldTextDidBeginEditingNotification通知,但当编辑已经开始时,它将触发…我只想调用一个由我定义的方法,当我点击textfield时,您能告诉我它的代码吗,我的方法签名是-(void)myMethod;请记住检查您是否有UITextField或UITextView。它们的行为非常相似,但需要单独的委托和函数(textViewShouldBeginEditing、UITextViewDelegate等)-我不想检查,花了一些时间不理解为什么没有调用我的函数这只在第一次单击时起作用。如果用户再次单击委托方法textFieldDidBeginEditing,则将不显示called@user1366265-那要看情况。如果
text字段应开始编辑
结束,则返回否
,则它不会进入文本编辑模式,每次单击它都会再次调用
textfield shouldBeginediting
。如果以
结尾,则返回YES,则它将处于文本编辑模式,并且必须发生某些事情来结束该编辑模式,然后才能再次开始。例如,单击其他控件。
[YourTextField addTarget:self action:@selector(myMethod:) forControlEvents:UIControlEventEditingDidBegin];

-(void)myMethod
{
 [YourTextField resignFirstResponder];
 //Do whatever you want
}