2010-05-23 263 views
11

我开始一个新的应用程序,我想知道如何要求输入密码才能打开它。密码保护iPhone应用程序

我正在考虑在应用程序委托实现文件的应用程序didFinishLaunchingWithOptions方法UIActionSheet,但我不确定如何去做。但我会继续努力。

找到this video,这看起来很有帮助。

现在我有我的UIActionSheet弹出显示“输入密码”,并试图计算如何将一个键盘添加到操作表。

+0

为什么这个社区wiki? – kennytm 2010-05-23 08:56:35

+0

我认为能够帮助具有相同问题的人们进入社区wiki。我错了吗?我很抱歉,如果是的话。 – Thomas 2010-05-24 04:04:54

+0

你应该要求一个mod来删除它,并在没有社区维基的情况下提出另一个问题。 – 2010-07-02 14:14:29

回答

8

我想你可能有更好的运气,使用完整的UIViewController实例而不是UIActionSheet。如果不是不可能,将键盘行为添加到操作表中将会很困难。

如果您创建了UIViewController子类,则可以让您的应用程序委托将其呈现在-application:didFinishLaunchingWithOptions:中。假设您正在为主界面使用某种UIViewControllerUINaviagtionController,则可以在启动时使用UIViewController - presentModalViewController:animated:以模态方式显示密码视图控制器。

一旦你有你的密码视图控制器,你需要添加一个UITextField用于输入密码。使文本字段变成firstResponder(通过调用becomeFirstResponder),这将导致键盘显示。您可能还希望在文本字段上设置keyboardAppearance属性,以控制键盘的显示方式,例如,如果您想限制为数字PIN与完整密码。设置secureTextEntry属性可能也是可取的,以防止显示实际密码。对于这两个选项,请参见UITextField上的UITextInputTraits协议。

为了使应用程序的安全,可以创建密码的视图控制器,以便它有没有按钮或超过“提交”或“登录”按钮类型其他导航选项。如果用户输入了正确的密码,就关闭模态视图控制器并让他们进入。如果他们不知道密码,他们唯一的选择是点击主页按钮退出应用程序,因为他们无法继续超越了模态视图控制器。

+0

谢谢!阅读它是有道理的。尽管如此,我还没有机会尝试过。我感谢您的帮助! – Thomas 2010-07-14 13:47:23

+0

实现[UIKeyInput协议参考](http://developer.apple.com/library/ios/#documentation/uikit/reference/UIKeyInput_Protocol/Reference/Reference.html)也是一个好主意,因此您可以将密码归零底层的数据存储。 NIST,DoD(STIG),CIS(安全基准)等通常需要清零。 – jww 2011-05-29 14:53:40

+0

我可以在哪里安全地存储密码? – surlac 2012-10-03 13:36:16

1

怎么样UIAlertView?但我不知道该应用是否被拒绝。有几个人说是,其他没有。不知道过去是否有变化。

这里有一些链接:

http://junecloud.com/journal/code/displaying-a-password-or-text-entry-prompt-on-the-iphone.html

UITextField in UIAlertView on iPhone - how to make it responsive?

http://iphone-dev-tips.alterplay.com/2009/12/username-and-password-uitextfields-in.html

http://discussions.apple.com/thread.jspa?threadID=1674641&start=15&tstart=0

http://icodeblog.com/2009/11/09/iphone-coding-tutorial-inserting-a-uitextfield-in-a-uialertview/

大多数链接都是一样的,都使用CGAffineTransformMakeTranslation。有人说iOS 4不需要这个功能。有时候会有问题。没有尝试过,因为我不想被拒绝...

+0

谢谢!我没有多少时间再次使用这个应用程序,但是当我选择它时,我一定会查看你的建议。谢谢! – Thomas 2010-09-20 16:52:39