2011-03-14 3 views
0

바보 같은 일로 곤란을 겪고 있습니다. 탐색 표시 줄과 테이블보기가있는보기가 있습니다. 내 탐색 바에 "검색"왼쪽 버튼이 있습니다. 사용자가이 "검색"버튼을 누르면 표보기가 내려 가고 탐색 전용의 새보기가 내 탐색 막대와 표보기 사이에 오게됩니다.addsubview + commitAnimations 후에 UITextfield가 응답하지 않습니다.

  • 나는 단지의 UITextField를 구현하는 뷰 컨트롤러를 가지고있다 :

    #import <UIKit/UIKit.h> 
    
    
    @interface serachBox : UIViewController <UITextFieldDelegate> { 
        IBOutlet UITextField *kWTextField;  
    } 
    
    @end 
    
  • 내 다른 뷰 컨트롤러 내 요소 (탐색 바, 테이블 바 ...)이 있습니다. 여기에 내 검색 버튼을 눌러에서 사용하는 기능은 다음과 같습니다

    - (void) pressSearchBtn:(id)sender{ 
    
        [searchBox.view setFrame:CGRectMake(0, -100, 320, 100)]; 
        CGRect theFrame = self.view.frame; 
        [UIView beginAnimations:@"frame" context:nil]; 
        [UIView setAnimationDuration:0.5]; 
        [UIView setAnimationDelegate:self]; 
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
        theFrame.origin.y = 100; 
        [self.view addSubview:searchBox.view]; 
        self.view.frame = theFrame; 
        [UIView commitAnimations]; 
    
    } 
    

내 문제는 내 검색 창보기는 잘 보이지만 그녀의 텍스트 필드 나던 응답 때 나는 그것을 클릭합니다. 나는 (애니메이션 물건을 수행하지 않고) 간단한 서브 뷰 추가를 테스트했다.

무엇이 문제입니까?

답변

0

안녕하세요. 이쪽을 누르기 전에 pressSearchBtn 작업을 추가하십시오.

[kWTextField becomeFirstResponder];

+0

기술적으로 말하면이 솔루션은 좋지만 내 앱을 사용하는 사용자 환경에서는 올바르게 사용할 수 없습니다. – Mat

0

또는 이렇게 할 수 있습니다. 인터페이스 빌더에서 텍스트 필드를보기의 꼭대기에 놓고보기 밖으로 나오지 않도록하십시오. 크기 (320,01)로 (0,0)에 놓습니다. 그런 다음 도구 -> 속성 검사기에서 텍스트 필드의 숨겨진 속성을 확인하십시오. 그런 다음이 코드를 buttonClick 클릭하십시오.

+0

유감스럽게도 이것이 정확히 어떻게 작동하고 싶지는 않습니다. 이렇게하면 UITextField가 숨겨져 있어도 내보기 상단에 약간의 공간이 생깁니다. 이것은별로 좋지 않습니다. – Mat

0

안녕하세요. 마침내 완료되었습니다.

인터페이스 작성 도구의 아무 곳에 나 텍스트 필드를두면 도구 -> 특성 관리자에서 숨길 수 있습니다. 이 쓰기

는 btnClick 방법으로 다음 방법 viewDidLoad에 당신을

- (void)viewDidLoad { 

    CGRect frame = CGRectMake(0, -100, 320, 580); 

    self.view.frame = frame; 

    text.frame = CGRectMake(0, self.view.frame.origin.y, 320, 100); 

    [super viewDidLoad]; 
} 

을이 작업을 수행합니다.

-(IBAction) btnClicked: (id) sender 
{ 

    CGRect frame1 = CGRectMake(0, 0, 320, 100); 
    text.hidden = FALSE; 
    CGRect frame = self.view.frame; 
    [UIView beginAnimations:@"frame" context:nil]; 
    [UIView setAnimationDuration:1.0]; 
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
    frame.origin.y = 0; 
    self.text.frame = frame1; 
    self.view.frame = frame; 
    [UIView commitAnimations]; 

} 

환호성 !!!

관련 문제