アラートビューのテキストフィールドを角丸にするには


アラートビューにテキストフィールドを追加するにはこのプロパティを使います。

    inputAlert.alertViewStyle=UIAlertViewStylePlainTextInput;

テキストフィールドを追加したら前もって色々設定しておきたい。悩んだけどココで解決。

iphone – How can I init a text field in a UIAlertView – Stack Overflow

これでテキストフィールドが取得できるのでセットしまくる。

UITextField *tf = [inputAlert textFieldAtIndex:0];
tf.borderStyle=UITextBorderStyleRoundedRect;
tf.text=@"test";
tf.clearButtonMode=UITextFieldViewModeAlways;

テキストフィールドが四角くてカッコ悪いので角を丸くするためにUITextBorderStyleRoundedRectをセットしたら角丸になったけど、その下になんか出ててカッコ悪い。

130109-0001

AlertViewの表示前デリゲートメソッドで中身をチェックして怪しげなのを排除してみた。

-(void)willPresentAlertView:(UIAlertView *)alertView
{
    for (UIView* view in alertView.subviews) {
        NSLog(@"%@",[view description]);
        if ([view isKindOfClass:NSClassFromString(@"UIThreePartImageView")]) {
            [view removeFromSuperview];

        }
    }
}

NSLogで列挙の中身を見てみたら

UIImageView
UILabel
UILabel
UIAlertButton
UIAlertButton
UIThreePartImageView
UIAlertSheetTextField

textFieldが怪しげかとおもいましたがUIThreePartImageViewが正解でこれをアラートビューから削除してみたら良い感じになりましたよ。

130109-0002

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です