2011-07-07 100 views
1

我希望这将是一件相对容易的事情。在NSTextView中更改光标

我正在写一个Mac应用程序,它将(大部分)是一个巨大的NSTextView。我想将默认文本位置光标覆盖到唯一的颜色/形状光标。我没有很多Quartz或一般的绘图经验,但这是我可以更深入地研究的东西。

我主要在寻找的是实现此目的的最佳方法的建议。是否会覆盖drawRect函数,调用super,然后实现我自己的绘图代码?

我将如何找到绘制该光标的适当位置?它是否包含在drawRect的传递矩形内?

回答

0

本质上,你必须继承NSTextView并覆盖一些方法。显而易见的是

-(void)drawInsertionPointInRect:(NSRect)aRect color:(NSColor *)aColor turnedOn:(BOOL)flag 

但这似乎并没有完全照顾它。显然,你还必须重写的私有方法:

-(void)_drawInsertionPointInRect:(NSRect)arg1 color:(NSColor *)color 

看看这里的人谁是已经在努力做到这一点: http://www.cocoadev.com/index.pl?CustomInsertionPoint

+0

甜。希望我不必为了让它工作而继承子类。谢谢你的提示。现在就让这个开放,看看是否有更好的回应。我明天会选择一个答案。感谢您花时间回复! – gks

+1

考虑改善你的帖子,因为你的答案基本上是一个链接。请参阅:[是否只包含其他链接的答案真的是“好答案”?](http://meta.stackexchange.com/q/8231/156620)和[为什么链接不好?](http://meta.stackexchange .com/q/7515/156620) – 2011-07-08 01:33:44

+0

覆盖私人方法将导致在App Store上被拒绝?如果是这样,那么需要考虑答案。 – gks