2014-12-28 2 views
9

설정 :UITextView 텍스트 색상을 선택할 수있는 재산 사용할 때 설정되지 않습니다

나는 간단한 텍스트 뷰가의 ViewController의하는 .m 파일에서 촬영 콘센트, 스토리 보드 기반 뷰에 추가했습니다. 나는 그것을 사용하여 텍스트를 설정하고있다. 예 : [_textViewOne setText:@"Test text"];. iOS 8.1로 컴파일하면서 Xcode 6.1을 사용하고 있습니다.

시나리오 : 난 그냥 UILabel의 같은 ​​UITextView 비 만질 만들고 싶었다

(내 텍스트가 1 또는 2 라인 일 수 있으며 UILabel의가에서 수직으로 뷰의 중심을 텍스트를 정렬하기 때문에 내가 대신 UILabel의의 UITextView를 사용하고 있습니다 1 줄 및 2 줄의 경우 왼쪽 위에서부터 시작합니다. 두 경우 모두 위에서 왼쪽부터 시작하여 텍스트보기로 쉽게 얻을 수 있습니다.)

먼저 터치 할 수 없도록하려면 Storyboard에서 selectable 속성을 비활성화하고 응용 프로그램을 실행 해 보았습니다. selectable 속성을 선택 해제 한 후 내 텍스트보기의 텍스트는 내가 설정 한 색상 (나는 붉은 색으로 설정)을 사용하지 않고 기본 검정색을 사용합니다. 내가 selectable 선택하면

enter image description here

는, 텍스트 색상 내가 인터페이스 빌더에서 설정 한대로 다음과 같습니다.

문제 :

  1. 내가 텍스트 뷰 설정 어떤 텍스트 색상 따르지 않는 인터페이스 빌더에서 selectable 재산의 선택을 취소 이유.

  2. 내가 인터페이스 빌더에서 selectable 속성을 선택 취소하는 경우, 발견하고 또한 텍스트 뷰가 난 단지 인터페이스 빌더 작품에서 해당 속성을 확인, 인터페이스 빌더에서 설정 한 어떤 텍스트 색상 따르지 않는 _textViewOne.selectable = YES; 같은 프로그래밍 방식으로 설정하려고 한 가지 더 .

가 (난 그냥 텍스트 뷰의 사용자 상호 작용이 아닌 만질 수 있도록하지 않도록해야한다 알고있다 (또한 엑스 코드를 다시 시작하고 깨끗한 빌드 시도)하지만 selectable을 실수로 선택하지 않은 그것은 무슨 일이 일어 났는지 알아 내기 위해 내 시간을 보냈다 , 그래서 그냥 뭔가 잘못하고있다 또는이 문제의 일종 또는이 컨트롤의 올바른 동작인지 알고 싶었어요.)

+0

iOS에 버그가 있습니다. 텍스트 변경도 색상이 변경됩니다. ** 텍스트를 변경 한 후 텍스트 색상을 변경해야합니다. 예 : tv.text = @ "asd"; tv.textColor = [UIColor 무엇이든]. – Borzh

답변

2

textview (조작 할 수 없게 만들기)를 사용하지 않으려면 다음을 사용할 수 있습니다.

_textViewOne.userInteractionEnabled = NO; 
+0

답변 주셔서 감사합니다 벤,하지만 난 이미 내 질문에 내가 당신이 제공 한 솔루션을 알고 언급, 문제 1 & 2에 대한 답변이 필요합니다. –

3

이 버그가 iOS 10에서 수정 된 것 같습니다.

그러나 버그 추적기에서이 버그를보고 iOS 10에서 재생산 할 수는 없지만 iOS9에서 성공적으로 재생할 때 매우 놀랐습니다.

textView.textColor = UIColor.red 
textView.isSelectable = false 

추신 : 내 경우에는

솔루션 순서로 코드를 작성했다

textViewOne.userInteractionEnabled = false은 textview를 스크롤 할 수 있기를 원하기 때문에 작동하지 않지만 선택 옵션은 필요하지 않습니다.

+0

그것은 확실히 이상한 버그입니다! – Fattie

0

이전 질문이지만 어제이 문제에 직면했습니다. 이 질문과 답변이 도움이되었습니다.

그러나 테이블 셀의 내 UITextView 이후 isSelectable = false은 사용할 수 없습니다. 다음 NO

self.textView.textColor = [UIColor blackColor]; [self.textView setUserInteractionEnabled:NO];

로 설정하는 setUserInteractionEnabled:를 사용

스토리 보드에서
  1. 에서, UITextViewuserInteractionEnabled와 코드에서
  2. 를 확인 떠나 UITextViewtextColor을 설정 : 여기에 나를 위해 일한 것입니다

    .userInteractionEnabled 대신 setUserInteractionEnabled:을 사용하면 분명히 효과가 있습니다.

    희망 사항이 있으면 iOS 9를 계속 지원하는 데 도움이됩니다.