2012-01-17 4 views

답변

3

UIAlertView의 입력 필드는 iOS SDK 5 이상에서 기본적으로 지원됩니다. 버전 4를 지원해야하는 경우 약간의 해킹이 필요합니다.

한 번 나는 Montouch 용 샘플 코드를 만들었습니다. 매우 깨끗하지만, 그것은 당신에게 아이디어를 제공해야하지 :

http://wildsau.net/post/2011/01/28/iOS-UIAlertView-with-a-UITextField-a-MonoTouch-implementation.aspx

그리고, 그래,이 문제없이 애플에 의해 승인됩니다.

+0

감사합니다. IOS 5 이상으로 업그레이드 할 필요가 없습니까? – mortenstarck

+0

다른 답변으로 말하면 : iOS5에서는 입력 필드를 표시하는 다양한 옵션이 있습니다. – Krumelur

2

iOS5부터는 보안 암호 필드를 포함하여 UIAlertViews에 텍스트 필드를 추가 할 수 있습니다.

http://mobile.tutsplus.com/tutorials/iphone/ios-5-sdk-uialertview-text-input-and-validation/

+0

그것은 iOS를위한 훌륭한 튜토리얼이지만, morten이 찾고있는 것이 monotouch와 관련이 없습니다! –

+1

iOS 개발에 참여하고자하는 모든 사람은 적어도 ObjC를 읽고 이해할 수 있어야하며 MT로 변환 할 수 있어야합니다. ObjC는 iOS의 표준이므로 MT를 사용한다고해도 주위에는 아무 것도 없다고 생각합니다. – Krumelur

+0

하지만 Monotouch의 구멍 점은 Obejct-C에 대해 신경 쓸 필요가 없습니까? – mortenstarck

2

아이폰 OS 5.0 UIAlertViewStyle 소개 : 여기에 튜토리얼 링크입니다. 선택할 수있는 4 가지가 있는데, 우리가 항상 갖고있는 것 중 하나이며, UITextField을 포함한 3 가지가 있습니다.

5.0 이전의 iOS 버전을 지원하려면이 alertViews를 직접 사용자 정의 할 수 있습니다 (방금 출시 한 앱에서이 작업을 수행했습니다). 이런 식으로 UITextFieldUILabel 중 하나를 추가 할 수 있습니다. 라인 UILabelUITextField 내 크기에 맞게 할 수있는 충분한 공간을 확보하기 위해 휴식이

UIAlertView *changeEmailAlert = [[UIAlertView alloc] initWithTitle:@"Change Email Address" message:@"\n\n" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil]; 

메시지 (\ n을 \ 없음) :

나는이 같은 alertView을 구현했습니다.

그런 다음 UIAlertView의 하위보기로 UILabelUITextField을 추가하십시오. 다른 곳에서는 하위보기를 추가하는 것과 같습니다.

여기에 중요한 부분이 있습니다. 경고보기를 닫기 전에 UITextField에 텍스트를 저장해야합니다. -(void)textFieldDidEndEditing:(UITextField *)textField을 사용하여 입력 한 텍스트를 가져 와서 나중에 액세스 할 수있는 변수에 저장합니다.

1

iOS5가 아닌 솔루션이 필요하다면 UIAlertViews는 다른 것과 같은보기 일뿐입니다. 하위 클래스로 추가 속성 및 하위 뷰를 추가 할 수 있습니다.

텍스트 필드 속성이있는 UIAlertView 하위 클래스를 만들지 못하게하는 것은 없으며 텍스트 필드 대리인 프로토콜을 구현하고 인스턴스화 할 때 텍스트 필드를 자체보기 계층 구조에 추가합니다.

멋지게 보이게하려면 더 까다로울 수 있습니다. 텍스트 필드 공간을 만들기 위해 다른 하위보기를 이동하는 것과 같은 작업을 수행하면 경고보기 내의 이름없는 하위보기를 반복하고 색인별로 하나씩 잡아 당기는 것과 같은 허약 한 해킹이 발생할 수 있습니다. 그러나 이것은 iOS4 및 이전 버전에서이를 수행하는 유일한 방법이며 많은 응용 프로그램이이 접근 방법을 사용하고 있습니다.

관련 문제