2011-01-10 1 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이 표시됩니다.

두 개의 버튼을 배치하면 잘 표시됩니다.

새로운 버튼을 추가하면 위의 링크와 같이 다음 행에 추가됩니다.

하지만 3 개의 버튼을 모두 하나의 열에 표시해야합니다.

어떻게하면됩니까?

답변

1

메시지 문자열에 필요한 "@"\ n을 추가하여 UITextField의 공간을 확보해야합니다.

두 개를 추가하십시오 (예 : @ "데이터 새로 고침을 원하십니까 \ n \ n") 무엇이 발생하는지 확인하십시오.

나는이 방법을 과거에 사용해 보았지만 효과가 있었지만 경고가 표시되는 동안 장치를 회전 할 때 몇 가지 문제가 있습니다. 레이아웃이 엉망이됩니다.

또한 같은 UIAlertView를 서브 클래스 시도 할 수

에서 here

편집 :

난 그냥 시도하고 UIAlertView가이 작동하지 않는 이유는 최대 높이 (이유 왜을 가지고 실현 버튼이 2 개 이상 있고 3 개 이상이 아닌).

공개 API가 아닌 UIAlertView의 단추를 배치 할 수 없습니다. 문서화되지 않은 API에 관심이 있다면 Erica Sadun의 책을 살펴보면 UIAlertView 사용자 지정과 관련하여 많은 것들이 있습니다. 그러나 그 전에 왜 "OK"와 "Done"버튼이 필요한가? 그들은 같은 의미가 아닌가요? 3 개 버튼에 대한 너무 많은 일이, 당신의 제목/메시지를 다시 생각하는 경우

내 지점이고, 어쩌면 그것이 도움이되기를 바랍니다 만 2

수행 할 수 있습니다 (보기의 사용자 지점에서 적어도)

+0

메시지를 nil하지만 변경하지 않으려 고합니다. 나는 수직으로 하나의 열에 수평으로 버튼이 필요하다 ... u pls는 u r 대답을 편집 할 수있다. – MaheshBabu

+0

나는 나의 대답을 업데이트했다;) 그것을 보라. – nacho4d

+0

나의 다른 요구 사항과 비슷한 다른 방법이 있는가? – MaheshBabu

관련 문제