2012-12-03 38 views
6

Tôi đang sử dụng trong ứng dụng của mình một bản xem văn bản có nền màu xanh dương.Khắc phục sự cố tự động với màu UITextview

Khi tự động sửa được bật, bất cứ khi nào nó sửa một từ, một hộp màu trắng sẽ được tạo thành xung quanh từ và màu của văn bản cũng thay đổi.

Bất kỳ ý tưởng nào về cách dừng hiệu ứng này?

+0

Tôi có cùng một câu hỏi và tôi không thể tìm thấy câu trả lời ... bất kỳ ai? Tôi đang cung cấp một tiền thưởng cho một câu trả lời cho điều này (mà sẽ không bị từ chối từ cửa hàng ứng dụng) – Cashew

+0

COME ON! thậm chí không một bình luận? sao không có ai sử dụng autocorrect với một UITextView màu? là nó chỉ cho tôi (và OP) có vấn đề này? Ít nhất đăng một bình luận và nói "Tôi đang gặp vấn đề tương tự và tôi nghĩ ..." – Cashew

+0

Xin lỗi. Tôi đã làm một số tìm kiếm xung quanh và có thể tìm thấy không có thông tin hữu ích. – JSuar

Trả lời

4

Nope, tôi nghĩ rằng bạn không thể thay đổi màu sắc của lớp phủ hoặc Format out of the box ..

Đây là một trong những khó khăn, nếu bạn đặt một breakpoint trong - (void) layoutSubviews {..} của bạn xem bạn sẽ xem UIKit đã vẽ 'UITextSelectionView' phía trên văn bản ...

Tôi đã cố gắng phân lớp UITextView để xem layoutSubviews của nó có được kích hoạt không và có vẻ như nó đã xảy ra!

Vì vậy, tôi đã cố gắng để loại bỏ các lớp phủ:

- (void) layoutSubviews { 
    [super layoutSubviews]; 

    for (UIView *subview in self.subviews) { 
     if ([NSStringFromClass([subview class]) isEqualToString:@"UITextSelectionView"]) { 
      DLog(@"Subview %@", [subview debugDescription]); 
      [subview removeFromSuperview]; 
      break; 
     } 
    } 
} 

Và nó làm việc .. nhưng điều đó dẫn đến thiếu con trỏ, và vô hiệu hóa bất kỳ lựa chọn :(

Tôi nghĩ rằng bạn sẽ phải vô hiệu hóa tự động sửa lỗi ..

tôi sẽ khởi động lại bounty nếu ai đó tìm thấy một câu trả lời thật!

+0

Tự động sửa là phải trong ứng dụng của tôi, tôi có thể ' t vô hiệu hóa nó. Sẽ thử mã của bạn và hy vọng tôi có thể tìm ra thứ gì đó. cảm ơn cho những nỗ lực. – Cashew

+0

Vâng, tôi nghĩ vậy, chúc bạn may mắn! Hãy cho tôi biết nếu bạn tìm thấy một cái gì đó! – Tieme

+0

: (có vẻ như không có câu trả lời nào được tìm thấy. Tôi sẽ trao cho bạn tiền thưởng vì nó sẽ là một sự xấu hổ để cho nó lãng phí – Cashew

0

Điều này có thể có khác tác dụng phụ Tôi hiện đang điều tra những gì khác gọi này, nhưng ghi đè firstRect (cho phạm vi) trong UITextView và trở về CGrect.Zero loại bỏ các điểm nổi bật.

override public func firstRect(for range: UITextRange) -> CGRect { 
    return CGRect.zero; 
} 
Các vấn đề liên quan