Just a Computer Graphics Studio & My Life

[iOS] 客製化AlertView

原本預設的AlertView只能顯示訊息,而無法輸入資料,看了人家寫的程式碼之後,才發現客製化AlertView可以很巧妙地產生TextField,想要幾行輸入框都不是問題了呢!在按下確定後,這些資料可以再做額外的處理~

-(IBAction)newWorkButtonClicked:(UIButton *)button
{
    UITextField *nameTextField;
    UITextField *passwordTextField;

    UIAlertView *prompt = [[UIAlertView alloc] initWithTitle:@"請輸入作品名稱"
                                                     message:@"\n\n\n" // 關鍵步驟
                                                    delegate:nil
                                           cancelButtonTitle:@"取消"
                                           otherButtonTitles:@"確定", nil];
    [prompt setDelegate:self];

    nameTextField = [[UITextField alloc] initWithFrame:CGRectMake(24.0, 50.0, 236.0, 30.0)];
    [nameTextField setBackgroundColor:[UIColor whiteColor]];
    [nameTextField setPlaceholder:@"美好的回憶"];
    [nameTextField setBorderStyle:UITextBorderStyleRoundedRect];
    [prompt addSubview:nameTextField];

    passwordTextField = [[UITextField alloc] initWithFrame:CGRectMake(24.0, 85.0, 236.0, 30.0)];
    [passwordTextField setBackgroundColor:[UIColor whiteColor]];
    [passwordTextField setPlaceholder:@"1314520"];
    [passwordTextField setBorderStyle:UITextBorderStyleBezel];
    [passwordTextField setSecureTextEntry:YES];
    [prompt addSubview:passwordTextField];

    // 設定AlertView位置
    [prompt setTransform:CGAffineTransformMakeTranslation(0.0, 10.0)];
    [prompt show];

    // 設定TextField出現游標和鍵盤
    [nameTextField becomeFirstResponder];
}
#pragma mark - AlertView Delegate Methods
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    NSLog(@"Index: %i", buttonIndex);
}

關鍵就是在init AlertView的時候,message設定「斷行(\n)」,想要幾行TextField就輸入幾個。

接下來就是在AlertView內產生TextField,位置、大小還有各種屬性參數的設定好,最後AlertView Delegate就去處理相對應的行為。

custom alertview

參考:Username and Password UITextFields in UIAlertView prompt【iPhone開發】如何做一個Username/Password彈跳視窗(UIAlertView)?

廣告

發表留言

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

標籤雲

%d 位部落客按了讚: