2011-01-10 11 views
0

UIAlertviewに3つのボタンと1つのテキストフィールドを配置する必要があります。私はこのようなコードを書いた。UIAlertviewにテキストフィールドとボタンを表示するときの問題

UIAlertView *share = [[UIAlertView alloc] initWithTitle:@"Refresh" message:nil delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", @"Contacts", nil]; 
share.tag = 2; 
[share setDelegate:self]; 
[share setTitle:@"Enter Name"]; 
[share setMessage:@" "]; 

nameField = [[UITextField alloc] initWithFrame:CGRectMake(20.0, 45.0, 245.0, 25.0)]; 
[nameField setBackgroundColor:[UIColor whiteColor]]; 
[nameField setKeyboardType:UIKeyboardTypePhonePad]; 
[share addSubview:nameField]; 
[share show]; 
[share release]; 
[nameField release]; 

ただし、like thisと表示されます。

私は2つのボタンを置くとうまく表示されます。

新しいボタンを追加すると、それはリンクの上のショーとして次の行に追加されます。

しかし、3つのボタンをすべて1つの列に表示する必要があります。

どうすればいいですか?

答えて

1

メッセージ文字列に必要な数の@ "\ n"を追加することで、UITextFieldのスペースを確保する必要があります。

(@ "あなたはデータを更新しますか\ n \ n"のように)いくつか追加して、何が起こるかを見てください。

私は過去にこの方法を試みていましたが、それは機能しましたが、アラートが表示されている間にデバイスを回転させるといくつかの問題があります。レイアウトが混乱する。

あなたはまた、のようなUIAlertViewのサブクラスを試すことができます

here

EDIT:

私はちょうどしようとしたUIAlertViewも、これが機能しない理由これは、最大高さ(理由はそれを持っていることを理解しています2つのボタンで動作し、3つ以上では動作しません)。

少なくとも公開APIではなく、UIAlertViewのボタンを手配することはできません。文書化されていないAPIに興味がある場合は、Erica Sadunの本を参照してください。UIAlertViewのカスタマイズに関する多くのものがあります。しかし、その前に、なぜ「OK」と「完了」の2つのボタンが必要ですか?彼らは同じ意味を持っていないのですか? 3つのボタンのそのあまりにも多くの仕事は、その後、あなたのタイトル/メッセージを再考場合

私のポイントは、あると多分それはそれが役に立てば幸いのみ2.

で行うことができます(ユーザの観点から、少なくとも)

+0

私はメッセージnilを置いてみましたが、変更はありません。私は垂直にではなく、単一の列に水平にボタンが必要です...あなたはu rの答えを編集することができますpls。 – MaheshBabu

+0

私は私の答えを更新しました;)それを見てください – nacho4d

+0

私の要件に類似した他の方法はありますか? – MaheshBabu

関連する問題