我需要在我的应用中获取社会安全号码,但我不希望号码本身显示在界面中。如何在不透露屏幕上的机密信息的情况下获取输入?
我必须填写这个要求我的社会保障系统编号的申请,但不是写下它应该显示为XXX-XX-XXXX而不是自己的号码,因为它是保密的。
答案 0 :(得分:8)
答案 1 :(得分:1)
NSSecureTextField是iPhone中密码字段的等效项。
以下是Apple的描述:
安全文本字段是一种文本 从显示中隐藏其文本的字段 或通过用户的其他访问 接口。它适合用作 密码输入对象,或任何项目 其中必须保留安全值。 您的代码可以获取文本字段 使用标准的字符串值 stringValue方法,但用户不能 看到它或访问它。它压倒了很多 文本编辑方面要防止 传递对象的值 用户可用的机制 (即通过剪切,复制和粘贴 命令和服务工具)。 该对象也覆盖了该文本 系统的绘图程序没有 文字根本)。 。 。 NSSecureTextFieldCell中的每个方法都有一个NSSecureTextField的封面。 (封面是一种调用原始方法的同名方法。 http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/TextField/Concepts/AboutSecureTextFields.html#//apple_ref/doc/uid/20000127-BAJCGDIH
由于NSSecureTextField派生自NSTextField,您可以在网上找到有关如何使用NSTextField的任何教程 - 只需在实现中将NSTextField替换为NSSecureTextField。我在上面加了一个重要的短语( NSSecureTextFieldCell中的每个方法都有一个NSSecureTextField 的封面)。与NSTextField对象一样与NSSecureTextField交互,接口在API级别上完全相同。
NSSecureTextField将显示在如下所示的应用程序中:
当我在Google上搜索“NSTextField Tutorial”时,我发现的第一个结果来自以下网站: http://www.pietrop.com/wordpress/dev-area/tutorials/cocoa-tutorial-nstextfield-nsbutton/#english
简而言之,您最终会得到一个类似于此的标题:
// Controller.h
#import <Cocoa/Cocoa.h>
@interface Controller : NSObject
{
//IBOutlets (the inteface's controllers)
IBOutlet NSSecureTextField *inputText;
IBOutlet NSTextField *displayedText;
IBOutlet NSButton *updateButton;
IBOutlet NSButton *clearButton;
}
/* IBActions (the user interface interactions) */
//Updates the text in the Wrapping Label
- (IBAction)updateText:(id)sender;
//Clears the text in the Wrapping Label and in the TextField
- (IBAction)clearText:(id)sender;
@end
答案 2 :(得分:1)
iPhone的标准UITextField在Interface Builder的“文本输入特征”选项下有一个“安全”选项。试试吧。