相关疑难解决方法(0)

检测空UITextField中的退格

是否有办法检测何时在空白的iPhone键盘上按下Backspace/ DeleteUITextField?我想知道什么时候Backspace只有在UITextField空的情况下被按下.


根据@Alex Reynolds在评论中提出的建议,我在创建文本字段时添加了以下代码:

[[NSNotificationCenter defaultCenter] addObserver:self
          selector:@selector(handleTextFieldChanged:)
              name:UITextFieldTextDidChangeNotification
            object:searchTextField];
Run Code Online (Sandbox Code Playgroud)

收到此通知(handleTextFieldChanged调用函数),但Backspace在空字段中按键时仍然不会.有任何想法吗?


这个问题似乎有些混乱.我想在Backspace按下键时收到通知.而已.但是当解决方案UITextField已经空了时,解决方案也必须工作.

iphone uitextfield backspace ios

122
推荐指数
10
解决办法
7万
查看次数

检测UITextField中的退格事件

我正在寻找关于如何捕获退格事件的解决方案,大多数Stack Overflow答案都在Objective-C中,但我需要使用Swift语言.

首先,我为UITextField设置了委托并将其设置为self

self.textField.delegate = self;
Run Code Online (Sandbox Code Playgroud)

然后我知道使用shouldChangeCharactersInRange委托方法来检测是否按下退格是所有代码都在Objective-C中.我需要在Swift中使用以下方法,如下所示.

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    const char * _char = [string cStringUsingEncoding:NSUTF8StringEncoding];
    int isBackSpace = strcmp(_char, "\b");

    if (isBackSpace == -8) {
        // NSLog(@"Backspace was pressed");
    }

    return YES;
}
Run Code Online (Sandbox Code Playgroud)

cocoa-touch uikit ios uitextfielddelegate swift

30
推荐指数
9
解决办法
4万
查看次数

iOS - 当UITextField为空时检测键盘中的退格键

可能重复:
检测UITextField中的退格

我想检测键盘上按下退格键的时间,即使a UITextField为空.

我试图使用ShouldChangeCharachtersInRange,但是当调用退格并且文本为空时,它不会被调用.

我怎么解决这个问题?

uitextfield ios uitextfielddelegate

15
推荐指数
1
解决办法
5969
查看次数

以正确的方式检测UITextField中的退格

注意!这个问题不是这个这个问题的重复!这是一个让事情变得更加清晰的新问题.

所以我已经按照上面帖子的所有说明进行操作,并且UITextField每次用户点击返回按钮时,我都会将其变为空白并移动到新位置.此外,我跟踪textView的输入,并在TextView的位置创建该文本的标签,如下所示:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {

    if (textField.text.length > 5) {
        CGRect labelFrame = CGRectMake(textField.frame.origin.x, textField.frame.origin.y, 0, 0);
        UILabel *label = [[UILabel alloc] initWithFrame: labelFrame];
        label.font = [UIFont fontWithName:@"HelveticaNeue" size:14];
        [label setText:textField.text];
        [label setTextColor: [BSFunctions getColorFromHex:@"3f3f3f"]];
        label.backgroundColor =[UIColor lightGrayColor];
        [label sizeToFit];
        [labelsArray addObject:label];
        [self.view addSubview: label];

        CGRect newTextFieldFrame = CGRectMake(labelFrame.origin.x + label.frame.size.width + 5, labelFrame.origin.y, 320, 30);
        NSLog(@"Rect is %@", NSStringFromCGRect(newTextFieldFrame));
        textField.frame = newTextFieldFrame;
        textField.text = @"\u200B";
    }    
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

我设置文本UITextField的文字是 …

iphone cocoa-touch objective-c uitextfield ios

6
推荐指数
1
解决办法
5074
查看次数