UIAlertView与UIAlertViewStyleSecureTextInput:重新获得活动后的清除字段

时间:2013-04-04 12:24:33

标签: ios objective-c uialertview

我的UIAlertView风格为UIAlertViewStyleSecureTextInput。它完美无缺。但是当应用程序重新激活,然后重新激活时,之前键入文本输入的文本仍然可见。但是当我试图追加一些下一个字符时,之前的所有文字都突然消失了。 这种行为可能是什么原因,以及如何改变它?

2 个答案:

答案 0 :(得分:1)

这是UIAlertViewStyleSecureTextInput的默认行为。

UITextField的功能与属性secureTextEntry设置为YES的功能类似。

答案 1 :(得分:0)

第一天

ViewController.m中的

- (void)viewDidLoad
{
    [super viewDidLoad];
    alert = [[UIAlertView alloc]init];
    [alert setDelegate:self];
    [alert setAlertViewStyle:UIAlertViewStyleSecureTextInput];
    [alert show];
}

- (void)setText
{
    UITextField *txt =   [alert textFieldAtIndex:0];
    [txt setText:@""];
}
在viewController.h中

设置代理

#import "AppDelegate.h"
@interface ViewController : UIViewController <UIPopoverControllerDelegate,alerttext>
appdelegate.h中的

@protocol alerttext <NSObject>
- (void)setText;
@end
#import <UIKit/UIKit.h>

@class ViewController;

@interface AppDelegate : UIResponder <UIApplicationDelegate>
{
    id <alerttext> delegate;
}
@property (strong, nonatomic) id <alerttext> delegate;
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) ViewController *viewController;
@end
您的appDelegate.m

中的

@synthesize delegate;

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [self.viewController setText];
}

第二种方式

在viewcontroller.m中

UITextField *text;
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    alert = [[UIAlertView alloc]init];
    [alert setDelegate:self];
    [alert setAlertViewStyle:UIAlertViewStyleSecureTextInput];
    [alert show];
     text =   [alert textFieldAtIndex:0];
}
- (void)setText
{
    [text setText:@""];
}
在ViewController.h中

,只需声明此方法

- (void)setText;
你的appdelegate.m中的

就是这个

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [self.viewController setText];
}