我在IB中创建了一个textField。我在IB中将键盘类型设置为Numeric Pad
。
当我在secureTextEntry = YES
方法中进行-(void)textFieldDidBeginEditing:(UITextField *)textField
时,我的键盘会从数字键盘变为通用键盘。我甚至尝试将键盘编程为数字编程,但它仍然没有改变。
我已经设置好了这个
-(void)textFieldDidBeginEditing:(UITextField *)textField{
if(textField == self.activationCodeTextField){
self.activationCodeTextField.secureTextEntry = YES;
self.activationCodeTextField.keyboardType = UIKeyboardTypeNumberPad;
}
}
FYI, 我无法在IB中将textField设置为安全,因为我在文本字段中向用户显示了类似“4位”的提示文本,直到他开始输入文本字段。一旦他开始在文本字段中输入,我希望条目是一个安全的文本,这样它只显示*而不是他键入的实际字符。
你能告诉我我在做什么错了吗?
我还有两个查询
我有一个textField,我有一些默认文本(如提示文本)。我希望这个提示文本显示给用户,直到他开始输入。当用户点击文本字段然后默认文本清除时,我不想清除此文本。但是,我希望显示此文本,直到他实际开始在键盘上键入内容的那一刻,然后必须清除默认值,然后在文本字段中显示实际键入的文本。是否有可能实现这一目标?
是否可以以编程方式将textfield的光标位置设置为第一个字符。这是必要的,因为我有一些默认文本(提示文本),光标位于文本的末尾。我希望光标位于文本的开头。如何以编程方式实现这一目标?
答案 0 :(得分:8)
您是否尝试在UITextField上使用-setPlaceholder:?这样您就不需要在文本字段中放置文本,然后手动将其转换为安全。 e.g。
- (void)viewDidLoad {
...
[textField setSecureTextEntry:YES];
[textField setPlaceholder:@"4-digits"];
...
}
这将完全照顾你的最后两个问题。但是,关于第一个,我不确定你是否可以为安全的UITextField使用数字键盘。如果以编程方式设置它没有效果,那么你似乎无法做到。