Objective c 更改NSTextField、NSTextView的聚焦颜色
如何将调焦颜色从蓝色更改为红色 (这个问题是继续的,这里没有设置默认的蓝色焦点,我需要红色焦点。) 默认设置如下所示: 我需要这样的东西(注意:显示的图像不是完美的,因为画在框内): 我试了几样东西 但是没有成功Objective c 更改NSTextField、NSTextView的聚焦颜色,objective-c,macos,cocoa,nstextview,Objective C,Macos,Cocoa,Nstextview,如何将调焦颜色从蓝色更改为红色 (这个问题是继续的,这里没有设置默认的蓝色焦点,我需要红色焦点。) 默认设置如下所示: 我需要这样的东西(注意:显示的图像不是完美的,因为画在框内): 我试了几样东西 但是没有成功 需要您的帮助。子类NSTextview并插入以下代码 -(void)mouseEntered:(NSEvent *)theEvent{ CALayer *lay = [self layer]; CGColorRef myColor=CGColorCreat
需要您的帮助。子类NSTextview并插入以下代码
-(void)mouseEntered:(NSEvent *)theEvent{
CALayer *lay = [self layer];
CGColorRef myColor=CGColorCreateGenericRGB(0, 0, 1, 1);
[lay setBorderColor:myColor];
[lay setBorderWidth:4];
//[self setWantsLayer:YES];
[self setLayer:lay];
[self makeBackingLayer];
//CGColorRelease(myColor);
}
-(void)mouseExited:(NSEvent *)theEvent{
CALayer *lay = [self layer];
CGColorRef myColor=CGColorCreateGenericRGB(0, 0, 1, 1);
[lay setBorderColor:myColor];
[lay setBorderWidth:0];
//[self setWantsLayer:YES];
[self setLayer:lay];
[self makeBackingLayer];
//CGColorRelease(myColor);
}
-(void)updateTrackingAreas{
[super updateTrackingAreas];
if (trackingArea){
[self removeTrackingArea:trackingArea];
[trackingArea release];
}
NSTrackingAreaOptions options = NSTrackingInVisibleRect | NSTrackingMouseEnteredAndExited | NSTrackingActiveInKeyWindow;
trackingArea = [[NSTrackingArea alloc] initWithRect:NSZeroRect options:options owner:self userInfo:nil];
[self addTrackingArea:trackingArea];
}
聚焦环颜色由用户设置。