Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.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 SecureTextEntry字段将键盘从numberpad更改为通用键盘_Iphone_Objective C_Cocoa Touch_Uitextfield - Fatal编程技术网

Iphone UITextField SecureTextEntry字段将键盘从numberpad更改为通用键盘

Iphone UITextField SecureTextEntry字段将键盘从numberpad更改为通用键盘,iphone,objective-c,cocoa-touch,uitextfield,Iphone,Objective C,Cocoa Touch,Uitextfield,我在IB中创建了一个文本字段。我已在IB中将键盘类型设置为数字键盘。 当我在-(void)textField didbeginediting:(UITextField*)textField方法中设置secureTextEntry=YES时,我的键盘从numberpad变为通用键盘。我甚至试着用编程的方式使键盘变成数字,但它仍然没有改变。 我是这样设置的 -(void)textFieldDidBeginEditing:(UITextField *)textField{ if(textFie

我在IB中创建了一个文本字段。我已在IB中将键盘类型设置为
数字键盘
。 当我在
-(void)textField didbeginediting:(UITextField*)textField
方法中设置
secureTextEntry=YES
时,我的键盘从numberpad变为通用键盘。我甚至试着用编程的方式使键盘变成数字,但它仍然没有改变。 我是这样设置的

-(void)textFieldDidBeginEditing:(UITextField *)textField{
    if(textField == self.activationCodeTextField){
        self.activationCodeTextField.secureTextEntry = YES;
        self.activationCodeTextField.keyboardType = UIKeyboardTypeNumberPad;
    }
}
仅供参考, 在IB中,我无法将textField设置为安全的,因为在用户开始在文本字段中键入之前,我会在textField中向用户显示类似“4位数”的提示文本。一旦他开始在文本字段中输入,我希望条目是一个安全的文本,这样它只显示*而不是他输入的实际字符

你能告诉我我在做什么吗

我还有两个问题

  • 我有一个文本字段,其中有一些默认文本(如提示文本)。我希望此提示文本在用户开始键入之前一直显示给用户。当用户单击文本字段,然后默认文本被清除时,我不想清除此文本。但是,我希望这个文本一直显示到他真正开始在键盘上键入内容的那一刻,然后必须清除默认值,然后在文本字段上显示实际键入的文本。有可能做到这一点吗

  • 是否可以通过编程将textfield的光标位置设置为第一个字符。这是必需的,因为我有一些默认文本(提示文本),并且光标位于文本的末尾。我希望光标位于文本的开头。如何通过编程实现这一点


  • 您是否尝试在UITextField上使用-setPlaceholder:?这样,您就不需要在文本字段中输入文本,然后再手动将其转换为安全文本。e、 g

    - (void)viewDidLoad {
        ...
    
        [textField setSecureTextEntry:YES];
        [textField setPlaceholder:@"4-digits"];
    
        ...
    }
    

    这将完全解决你的最后两个问题。但是,关于第一个问题,我不确定是否可以为安全的UITextField使用数字键盘。如果以编程方式设置它没有效果,您似乎无法解决问题。

    正如您所提到的,这一次解决了最后两个问题。但我仍然坚持第一个问题。有什么想法吗?对不起,我忽略了这些问题。实际上,设置占位符并在以后将securetextEntry设置为true已经解决了所有问题。谢谢,没问题!很乐意帮忙。:)这会动态工作吗?也就是说,如果UITextField中已经有文本?对我来说,现在不是这样。。