2009-07-23 7 views
2

저는 앱에서 간단한 텍스트 채팅 기능을 구현하고 프로그래밍 방식으로 UITextView을 스크롤하는 데 문제가 있습니다. Interface Builder에서 만든 UITextView을 사용하여 기존 텍스트에 새로운 줄과 일부 텍스트를 추가합니다. 새 텍스트가 추가되면 맨 아래로 스크롤해야합니다.UITextView를 프로그래밍 방식으로 스크롤

내 응용 프로그램에 추가하기 전에 테스트 응용 프로그램을 작성하여 개념을 완성했습니다. UITextView의 텍스트는 UITextField의 텍스트로 업데이트되지만 스크롤은 발생하지 않습니다.

- (IBAction)enteredText { 

CGPoint currentPosition = [textWindow contentOffset]; 
[textWindow setText:[NSString stringWithFormat:@"%@\n%@", textWindow.text, textInput.text]]; 
[textWindow setContentOffset:currentPosition animated:NO]; 
[textWindow scrollRangeToVisible:NSMakeRange([textWindow.text length], 0)]; 
[textInput setText:@""]; 
[textInput becomeFirstResponder]; 

}

난 내가 코드가 비슷한 기억 andfrom 무엇을 얼마 전에 개발 된 다른 응용 프로그램에서 매우 유사한 기능을 구현하는 기억. 유일한 차이점은 이전 응용 프로그램이 iPhone OS 2 용 이었지만이 응용 프로그램은 3.0 용이었습니다. 일부 포럼에서 Interface Builder에서 UITextView을 만들 때 3.0 베타에서 스크롤하는 데 문제가 있음을 읽었습니다. 나는 current release notes을 확인했는데 그 사실을 나타내는 어떤 것도 보지 못했습니다.

편집 : 텍스트가 UITextView에서 업데이트되기 때문에 IB 작업이 호출됩니다. 그리고 "Cancellable Content Touches"가 체크됩니다.

편집 : 같은 코드가 2.2.1에서 작동 확인하지만 3.0

답변

3

사용자가 UITextView를 탭한 후에 스크롤이 시작된다는 것을 알게되었습니다. 나는이 특정보기를로드 그래서 후 나는 일시적으로 FirstResponder, 다음의 UITextField 등 FirstResponder로 UITextView을 설정

[myChatRoomViewController.chatWindow becomeFirstResponder]; 
[myChatRoomViewController.input becomeFirstResponder]; 

당시 스크롤 그것은 내가 OS 2.

아이폰에 기억하고 무엇보다 부드러운 듯 불구하고, 자동으로 일어
0

는 당신에게 IBAction를 호출 점점 확실해? 그렇다면 Interface Builder에서 "Cancellable Content Touches"가 선택되었는지 확인하십시오. 이렇게하면 게시물에서 암시 한 문제가 해결됩니다.

+0

텍스트가 업데이트되기 때문에 작업이 호출되고 있음을 알고 있습니다. 그리고 네, "Cancellable Content Touches"검사가 3.0의 문제를 수정하는 것을 보았습니다. 그 내용을 원래 게시물에 포함시켜야했습니다. "취소 할 수있는 콘텐츠 감추기"의 세부 사항은 무엇입니까 –

+0

나는 그게 무슨 일을하는지 잘 모르겠지만 당신과 비슷한 문제에 직면 해 있었고 고쳐서 그것을 확인했습니다. 나는 그것에 의해 야기 된 이상한 부작용을 발견하지 못했지만 나의 경우는 매우 간단했다. –

관련 문제