我在NSBox中有一个NSTextView。我想在NSTextView获得焦点时立即通过NSBox绘制焦点环,并在NSTextView失去焦点后立即移除焦点环。
谢谢,
答案 0 :(得分:1)
为此,请创建NSTextView的子类,并覆盖-becomeFirstResponder,如下所示:
- (BOOL)becomeFirstResponder
{
BOOL returnValue = [super becomeFirstResponder];
if (returnValue) {
//do something here when this becomes first responder
}
return returnValue;
}
您可以在上面的if语句中设置NSNotification,以便在运行该代码块时,可以调用包含NSBox的视图,然后在NSBox上绘制一个焦点环。要处理失去焦点的NSTextView,你需要覆盖-resignFirstResponder,如下所示:
- (BOOL)resignFirstResponder
{
BOOL returnValue = [super resignFirstResponder];
if(returnValue){
//do something when resigns first responder
}
return returnValue;
}
请务必在界面构建器中更改类,并将标题和/或实现文件中的类类型更改为NSTextView的新子类: