我设法通过重写私有方法来处理第一次闪烁 – (voID)_drawInsertionPointInRect:(NSRect)aRect颜色:(NScolor *)acolor.
但这对我来说不是一个解决方案,因为重写私有方法将导致App Store下降.我希望该应用程序在App Store中.我看到像iAWriter和Writeroom这样的应用程序有一个自定义插入点,它们在App Store中.
有谁知道他们如何设法做到这一点,或者更好的方式而不是覆盖私有方法?
谢谢.
- (voID)_drawInsertionPointInRect:(NSRect)aRect color:(NScolor *)acolor{ aRect.size.wIDth = 3.0; [acolor set]; [NSBezIErPath fillRect:aRect];}- (voID)drawInsertionPointInRect:(NSRect)aRect color:(NScolor *)acolor turnedOn:(BOol)flag{ if(flag) { aRect.size.wIDth = 3.0; [acolor set]; [NSBezIErPath fillRect:aRect]; } else { [self setNeedsdisplayInRect:[self visibleRect] avoIDAdditionalLayout:NO]; }}@H_502_20@解决方法 问题是调用drawInsertionPointInRect时生效的剪切路径.- (voID)drawInsertionPointInRect:(NSRect)rect color:(NScolor *)color turnedOn:(BOol)flag { rect.size.wIDth = 8.0; NSBezIErPath * path = [NSBezIErPath bezIErPathWithRect:rect]; [path setClip]; // recklessly set the clipPing area (testing only!) [path fill];}@H_502_20@请注意,上面的代码将留下工件(在我的测试中,不会调用drawInsertionPointInRect来清除插入点,只是为了绘制它).使用setDrawsBackground:YES以快速而脏的方式清除工件.
总结以上是内存溢出为你收集整理的cocoa – NSTextView的自定义插入点全部内容,希望文章能够帮你解决cocoa – NSTextView的自定义插入点所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)