0

私はスタイルを持っUIAlertViewています。UIAlertViewStyleSecureTextInputそれは完璧に機能します。ただし、アプリケーションがアクティブを辞退してアクティブに戻った場合、以前にテキスト入力に入力したテキストは表示されたままです。しかし、次の文字を追加しようとすると、以前のテキストがすべて突然消えてしまいます。この動作の理由は何ですか?それを変更するにはどうすればよいですか?

4

2 に答える 2

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 に答える