Как сделать выделение жирным в NStextview?
Используйте setFont: range:? но я хочу сделать только выделение жирным, поскольку выделение может иметь другой атрибут шрифта, так что кто-нибудь может сказать это?
2 ответа
Решение
Как это:
NSMutableAttributedString* text = [textView textStorage];
[text applyFontTraits:NSBoldFontMask range:NSMakeRange(0,[text length])];
где диапазон - это диапазон текста, который вы хотите сделать жирным.
Вы также можете смоделировать нажатие клавиши CMD+B следующим образом:
// Simulates CMD+B
CGEventSourceRef src =
CGEventSourceCreate(kCGEventSourceStateHIDSystemState);
CGEventRef cmdd = CGEventCreateKeyboardEvent(src, 0x38, true);
CGEventRef cmdu = CGEventCreateKeyboardEvent(src, 0x38, false);
// Key codess for the (B) key
CGEventRef Bd = CGEventCreateKeyboardEvent(src, 0x0b, true);
CGEventRef Bu = CGEventCreateKeyboardEvent(src, 0x0b, false);
CGEventSetFlags(Bd, kCGEventFlagMaskCommand);
CGEventSetFlags(Bu, kCGEventFlagMaskCommand);
CGEventTapLocation loc = kCGHIDEventTap;
CGEventPost(loc, cmdd);
CGEventPost(loc, Bd);
CGEventPost(loc, Bu);
CGEventPost(loc, cmdu);
CFRelease(cmdd);
CFRelease(cmdu);
CFRelease(Bd);
CFRelease(Bu);
CFRelease(src);