0

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

4

2 回答 2

1

这是 的默认行为UIAlertViewStyleSecureTextInput

该功能类似于UITextField将属性secureTextEntry设置为YES

于 2013-04-04T12:37:30.280 回答
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];
}
于 2013-04-04T13:26:42.253 回答