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