如何在NSView中显示闪烁的插入符号?

时间:2012-02-14 10:58:45

标签: cocoa

我正在构建一个显示和编辑文本的自定义NSView子类 - 我有点显示一个闪烁的插入符号 - 我无法在任何地方找到引用 - 有人可以指向我的功能或参考吗? (在Windows中我会做ShowCaret - 一块蛋糕)。 TIA。

2 个答案:

答案 0 :(得分:1)

如果你真的需要这样做,那么你必须自己实现它。您的视图应该有一个布尔值来存储当前的闪烁状态,您需要使用重复计时器在您的计时器方法中执行类似的操作:

- (void)updateCaret:(NSTimer*)timer
{
    caretBlinkActive = !caretBlinkActive; //this sets the blink state
    [self setNeedsDisplayInRect:[self caretRect]];
}

您需要实现caretRect以返回当前的插入符号矩形。

drawRect:的实现中,您需要优化绘图,以便仅绘制脏矩形,并且您使用caretBlinkActive的值来绘制插入符号。 / p>

要在第一时间创建计时器,您可以执行以下操作:

[NSTimer scheduledTimerWithTimeInterval:caretBlinkRate 
                                 target:self 
                               selector:@selector(updateCaret:) 
                               userInfo:nil 
                                repeats:YES];

答案 1 :(得分:0)

为什么不使用NSTextView?你会免费获得这种行为。