Tôi đang cố hiển thị độc đáo các đoạn được đánh dấu trong một NSTextView. Ngay bây giờ, tôi đang làm điều này bằng cách tạo ra một NSAttributedString với một màu nền. Dưới đây là một số mã được đơn giản hóa:Điểm nổi bật/màu nền NSAttributedString hiển thị giữa các dòng (xấu xí)
NSDictionary *attributes = @{NSBackgroundColorAttributeName:NSColor.greenColor};
NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:@"Here is a single line of text with single spacing" attributes:attributes];
[textView.textStorage setAttributedString:attrString];
Phương pháp này về cơ bản hoạt động, ở chỗ nó tạo văn bản được đánh dấu.
Thật không may, khi nhiều dòng tồn tại, nổi bật bao gồm các không gian dọc giữa các đường ngoài các dòng họ, kết quả là xấu xa.
Có ai biết cách làm kiểu đánh dấu này trong ca cao không? Các hình ảnh dưới đây về cơ bản là những gì tôi đang tìm kiếm (bỏ qua cái bóng trên các hộp màu trắng):
Tôi muốn được sẵn sàng để sử dụng CoreText, html, hoặc bất cứ điều gì là cần thiết để làm cho mọi việc trông đẹp hơn .
Đã bao giờ bạn giải quyết vấn đề này, tôi có chính xác cùng một vấn đề – user499846
Tôi đã không tìm ra điều này, nhưng tôi đã tìm ra cách ít nhất là trung tâm vùng chọn xung quanh văn bản, để nó không phải ở trên hoặc phía dưới. Nó liên quan đến việc tính toán '[paragraphStyle setLineSpacing: xx]' và '[paragraphStyle setLineHeightMultiple: xx]' sao cho chúng giống nhau. Một lần nữa, điều này không giải quyết vấn đề thực tế mặc dù, chỉ làm cho nó dễ chịu hơn. – stevel