2011-01-04 2 views
0

사용자 정의 myInputView을 사용할 수 있도록 UITextField을 확장했습니다. 그러나 myInputView을 원하는 위치에 배치하는 데 문제가 있습니다. myInputView의 CGRect 프레임을 설정하는 것은 중요하지 않습니다. 높이를 화면 하단에 배치합니다.UITextField에서 파생 된 사용자 지정 UIView 컨트롤을 배치하는 방법

페이지의 스크린 샷 : 당신이 그림에서 볼 수 있듯이

http://lh3.ggpht.com/_h3ntmj5-XE8/TSK_zj6GfcI/AAAAAAAAAv8/wNWvuXS5Qk8/s640/Screen%20shot%202011-01-03%20at%2010.33.00%20PM.png

반전 숫자 패드는 내 사용자 지정 inputView,하지만 난 화면의 중앙을 향해 배치 할 수 있어야합니다.

MyTextField.h

@interface MyTextField : UITextField { 
    UIView *myInputView; 
} 
@property (nonatomic, retain) IBOutlet UIView *myInputView; 
@end 

MyTextField.m

당신은 입력 뷰의 관점에서이를 구현하지 고려하는 것이 좋습니다
@implementation MyTextField 
@synthesize myInputView; 

- (UIView *)inputView { 
    NSLog(@"Return inputView"); 

    CGRect frame = CGRectMake(0, 200, 320, 215); 
    [myInputView setFrame:frame]; 

    return myInputView; 
} 

- (void)dealloc { 
    [super dealloc]; 
    [myInputView release]; 
} 
@end 
+0

분명히 TextField가 첫 번째 응답자가 될 때 사용자 정의 inputView를 사용자 정의 UITextField에 할당하면 기본 inputView를 사용하는 것처럼 동일한 높이에 배치됩니다. – docchang

답변

2

. 입력보기를 설정하면 시스템이 키보드를 처리하는 것처럼 처리 할 수 ​​있습니다. 프레임을 설정하지 않고 높이만 설정하십시오. UITextField을 제거하고 UILabel으로 바꾸고 그 위에 UIButton을 넣는 것이 좋습니다. 사용자 정의 입력보기를 기본보기에 추가하고 화면 밖으로 배치하십시오. 버튼을 누르면 사용자 입력보기가 화면에 다시 나타납니다. 사용자가 입력을하면 레이블을 업데이트하면됩니다. 첫 번째 응답자 또는 UITextField.inputView에 대해 전혀 염려하지 마세요.

관련 문제