I'm trying to draw my own NSTextView cursor.  I expect that for each
pulse of the cursor, drawInsertionPointInRect(_:color:turnedOn:) will be
called twice, once with turnedOn == true and, shortly afterward, again
with turnedOn == false.

Instead, my method overriding drawInsertionPointInRect is called once
per pulse.  Each time it is called, turnedOn is true.  Here is my
override method:

override func drawInsertionPointInRect(rect: NSRect, color: NSColor,
    turnedOn: Bool) {
        let lctx = alwaysOnOutlet.enter(#function)
        defer {
                lctx.exit()
        }
        lctx.print("... rect \(rect) turnedOn \(turnedOn)")
        super.drawInsertionPointInRect(rect, color: color, turnedOn: turnedOn)
}

(The lctx bits are just my instrumentation.  They boil down to a couple
of Swift.print() calls.)

Here and there on the web, people describe a strategy for actually
clearing the cursor when turnedOn == false.  For example,
http://stackoverflow.com/questions/15647874 . They mention
that it's also necessary to override an undocumented function,
_drawInsertionPointInRect.  I haven't found any mention that turnedOn is
always true.

Am I wrong in my expectation that drawInsertionPointInRect should be
called sometimes with turnedOn == false?  Does anybody else see the
behavior I describe?

Dave

-- 
David Young         //\ Trestle Technology Consulting
(217) 721-9981      Urbana, IL   http://trestle.tech/
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to