我在 NSBox 中有一个 NSTextView。我想在 NSTextView 获得焦点时在 NSBox 周围绘制焦点环,并在 NSTextView 失去焦点后立即移除焦点环。
谢谢,
我在 NSBox 中有一个 NSTextView。我想在 NSTextView 获得焦点时在 NSBox 周围绘制焦点环,并在 NSTextView 失去焦点后立即移除焦点环。
谢谢,
为此,创建一个 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 的新子类: