0

我正在寻找一种 UITextField 的方法,它在我输入 UITextField 后会生成一个东西。

我有一个方法来进行计算我使用一个按钮,但我不想使用,我希望你在我在 UITextField 中键入数字后运行这个方法。

关于使用哪种方法的任何提示?

谢谢您的帮助。

4

4 回答 4

3
  1. 实施UITextFieldFieldDelegate协议
  2. 将您的文本字段的委托设置为您的视图控制器

self.textField.delegate = self;

然后实现shouldChangeCharactersInRange方法

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
        textField.text = [textField.text stringByReplacingCharactersInRange:range withString:string];
        [self doCalculations];
        return NO;
    }
于 2013-11-04T02:50:31.690 回答
1

您可以使用- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string立即获取键入的文本。或者您可以使用- (BOOL)textFieldShouldReturn:(UITextField *)textField捕获用户点击返回的时间并在那时从文本字段中读取文本。这两种方法都在 UITextFieldDelegate 协议中,可以在此处找到其文档。

编辑:

或者,您可以使用[textField addTarget:self action:@selector(textChanged:) forControlEvents:UIControlEventEditingChanged];并实现 textChanged 方法来捕获 EditingChanged 事件。

于 2013-11-04T02:47:44.463 回答
0
//in your ViewContoller.h
//Implement UITextFieldFieldDelegate protocol


//In your ViewContoller.m
//where you are creating your textfield.
textField.delegate = self;

// There are 2 delegate method that you can implement
// this method will be called whwn ever you enter a a letter.
// say you enter 'abcd' then this method will be called 4 times.  
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
//do your calculation if required
    return YES;
}

//this method will be called when the textField will end editing, i.e when the keyboard resigns of the control goes to some other textField/textView
- (void)textFieldDidEndEditing:(UITextField *)textField {

}

根据您的要求,您可以使用第一种或第二种方法进行计算。

于 2013-11-04T05:22:06.533 回答
0

是的,您可以使用以下代码:-

此代码询问委托人是否应更改指定的文本。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
        [self yourMethodName];  //The method which you want to call.
        return YES;
    }

并调用 UITextFieldField 代表。为了更好地理解这一点,您可以参考:-

https://developer.apple.com/library/ios/documentation/uikit/reference/UITextFieldDelegate_Protocol/UITextFieldDelegate/UITextFieldDelegate.html#//apple_ref/occ/intfm/UITextFieldDelegate/textField:shouldChangeCharactersInRange:replacementString

希望这会帮助你。

于 2013-11-04T05:58:56.643 回答