2012-04-21 3 views
2

iOS의 Facebook "Update Status"보기와 유사한 화면을 재현하고 싶습니다. 사용자는 왼쪽/편집 텍스트를 입력 할 수 있어야한다iOS : 편집 할 수없는 문자열을 UITextView의 끝에 추가하십시오.

남쪽에서 나라 빈 비치 - (여기에 과거 아무것도 편집 안)을 도보 enter image description here

enter image description here (이 텍스트를 편집해야한다) 추가 된 문자열의. 추가 된 문자열은 부모 내에서 줄 바꿈해야하며 클릭 할 수 있어야합니다.

누구에게 이것이 어떻게 수행되는지 압니까? (나는 최근에 Viddy 앱에서도 보았습니다.)

텍스트가 입력 될 때 프레임을 업데이트하는 UIAttributedString을 2 줄 이상으로 나누어 성장하는 UITextField 일 수 있습니까?

답변

3

업데이트 : 어쨌든 사용자의 위치를 ​​서명에 커서를 수 있도록 당신이 원하는처럼되어 보이지만, 그녀의 유형이 경우
,이 대신

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{ 
    NSInteger signatureLength=20; 
    if(range.location>self.textView.text.length-signatureLength){ 
     return false; 
    } 
    else{ 
     return true; 
    } 
} 
를 사용하고자하는 것입니다하지

원본 : 당신은 UITextViewDelegate

임을 사용할 필요가

plement - (무효) textViewDidChangeSelection을 : (UITextView *) 텍스트 뷰 방식, 같은 : 그러니까 기본적으로

-(void)textViewDidChangeSelection:(UITextView *)textView{ 
     NSInteger signatureLength=20; 
     NSRange newSelection=self.textView.selectedRange; 
     if(newSelection.location>self.textView.text.length-signatureLength){ 
      [self.textView setSelectedRange:NSMakeRange(self.textView.text.length-signatureLength, 0)]; 
     } 
} 

:이 예를 들어

은의이이 같이 보일 것입니다, 서명 길이가 20 가정하자 선택 (==이 경우 커서)이 변경 될 때마다 가로 채고, 커서가 서명의 중간에있게되면 바로 전에 위치를 변경합니다. 길이가 0 인 선택 영역을 설정하면 커서 위치가 변경됩니다.

+0

정확도는 서명 문자열을 사용하여 textview를 초기화하고이 경우 서명 길이는 20 자임을 전제로합니다. –

+0

이 방법을 사용하면 어떻게 서명 문자열을 클릭 할 수있는 형식으로 만들 수 있습니까? –

+0

무슨 뜻인가요? 커서가 그 안에 깜박이도록 클릭 할 수 있습니까? 하지만 편집 할 수 없습니까? 그런 다음 - (BOOL) textView : (UITextView *) textView shouldChangeTextInRange : (NSRange) range replacementText : (NSString *) text 대신 해당 정보로 내 대답을 편집 해주세요. –

관련 문제