iphone - UITextField SecureTextEntry 字段将键盘从数字键盘更改为通用键盘

标签 iphone objective-c cocoa-touch uitextfield

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

-(void)textFieldDidBeginEditing:(UITextField *)textField{
    if(textField == self.activationCodeTextField){
        self.activationCodeTextField.secureTextEntry = YES;
        self.activationCodeTextField.keyboardType = UIKeyboardTypeNumberPad;
    }
}

仅供引用, 我无法将文本字段设置为在 IB 中安全,因为我在文本字段中向用户显示了诸如“4 位数字”之类的提示文本,直到他开始在文本字段中输入为止。一旦他开始在文本字段中输入,我希望这些条目是安全文本,以便它仅显示 * 而不是他输入的实际字符。

你能让我知道我所做的事情有什么问题吗?

我还有两个查询

  1. 我有一个文本字段,其中有一些默认文本(如提示文本)。我希望这个提示文本显示给用户,直到他开始打字的那一刻。当用户单击文本字段然后默认文本被清除时,我不想清除此文本。但是,我希望显示此文本,直到他实际开始在键盘上输入内容为止,然后必须清除默认值,然后将实际输入的文本显示在文本字段上。有可能实现这个目标吗?

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

最佳答案

您是否尝试过在 UITextField 上使用 -setPlaceholder: ?这样,您就不需要将文本放入文本字​​段,然后手动将其转换为安全的。例如

- (void)viewDidLoad {
    ...

    [textField setSecureTextEntry:YES];
    [textField setPlaceholder:@"4-digits"];

    ...
}

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

关于iphone - UITextField SecureTextEntry 字段将键盘从数字键盘更改为通用键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6522743/

相关文章:

iphone - iOS: locationManager:didUpdateToLocation:fromLocation: 不移动时报告速度

objective-c - ios停止2个线程同时使用一个方法

ios - 在 Objective-C 中确定运行时分配的接收者

ios - secondsFromGMT 在设备和模拟器上返回不同的值

ios - AppleScript 创建 Xcode 目标的副本

iphone - 来自文本的 CGPathRef

iphone - 从 iPad 以 base64 格式和大小限制上传图像

iphone - 如果(tableView==self.searchDisplayController.searchResultsTableView)失败

objective-c - 过渡到 ARC 的工具

iphone - Cocoa Touch 从核心数据更新 UITableView