2012-06-10 2 views
1

내보기 컨트롤러가 복잡해져서 일부 컨트롤을 그룹화하고 uiview를 하위 클래스로 분류하기로 결정했습니다. 내보기 컨트롤러에서 나는 뷰를 잡아 :UITextViewDelegate의 UIVIEW 하위 클래스

@property (strong, nonatomic) PostMenuCell *menuCell; 
menuCell = [[PostMenuCell alloc] initWithFrame:CGRectMake(3,200,304,96) ]; 
menuCell.textView.delegate = self; 
[self.view addSubview:menuCell]; 

그리고 잘 나타납니다. 나는 텍스트보기를하고 그래서 VC의 대리자를 사용하고 있습니다 :

@interface PostPictureViewController : UIViewController <UITextViewDelegate> 

내가 같은 텍스트보기 위임 방법을 사용하려고 해요 : 키보드가 때 팝

- (void)textViewDidBeginEditing:(UITextView *)textView 
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range  replacementText:(NSString *)text 

을 텍스트 영역을 클릭하지만 위임 메서드는 사용되지 않아 어떤 작업도 수행 할 수 없으며 키보드를 닫을 수 없습니다. 나는 menuCell.textView.delegate = self라고 생각했다. 텍스트보기가 VC를 위임하지만 분명히하지는 않을 것입니다.

모든 안내를 주시면 감사하겠습니다.

+1

@shabzco 그 제안은 의미가 없습니다. –

답변

0

대리인을 설정할 때 textview가 nil이 아닌지 확인하십시오.

+1

IB와 코드에서 어떤 일이 일어나고 있는지 혼란스러워하면서 실제로 서브 클래스를 다시 작성했습니다. 따라서 : menuCell.textView.delegate = self; 실제로 하위 뷰 텍스트 필드 대리자를 설정하는 데 사용되었습니다. – poperob

+0

@poperob - 비슷한 문제가있어서 테이블의 셀에 필드를 입력 할 때 UITextViewDelegate 메서드를 호출 할 수 없습니다. 이걸 어떻게 어떻게 작동 시켰습니까? 질문에 +1을하고 질문을 올리며 대답 할 점수를줍니다. – Patricia

관련 문제