自定义NSSearchField光标颜色

原创 2015年11月21日 11:45:48
自定义NSSearchField光标颜色

        本文主要介绍如何自定义输入框中光标的颜色。如果想自定义NSSearchField样式,请参考老谭的一片文章:http://www.tanhao.me/pieces/1580.html/,该文章里面做了一些详细的介绍。

        改变光标颜色有两种方法:

         1. 子类化NSSearchFieldCell,重写setUpFieldEditorAttributes方法,代码片段如下。

- (NSText *)setUpFieldEditorAttributes:(NSText *)textObj
{
    NSText *text = [super setUpFieldEditorAttributes:textObj];
    [text setBackgroundColor:self.backgroundColor];
    text.drawsBackground = YES;
    [(NSTextView*)text setInsertionPointColor:[NSColor whiteColor]];
    return text;
}

        NSSearchField获取焦点,要显示光标的时候,都会调用该方法。

         2. 遍历NSSearchField的子视图(subviews), 取出_NSKeyboardFocusClipView类的对象,然后再取出里面的
NSTextView对象,调用setInsertionPointColor函数,传入想要的颜色,代码片段如下。

    if (self.searchField.subviews.count) {
        __block NSView *keyboardFocusClipView;
        [self.searchField.subviews enumerateObjectsUsingBlock:^(id  obj,
                                                                NSUInteger idx,
                                                                BOOL *stop) {
            //   NSClassFromString(@"_NSKeyboardFocusClipView");
            if ([obj isKindOfClass:[NSClipView class]]) {
                keyboardFocusClipView = obj;
                *stop = YES;
            }
        }];

        if (keyboardFocusClipView) {
            NSView *view = keyboardFocusClipView.subviews[0];
            [(NSTextView*)view setInsertionPointColor:cursorColor];
        }

    }

        两种方法的不同之处在于:方法一调用的前提,是输入框由无光标到有光标时才触发,如果在有光标的时候想改变光标的颜色,就只能使用方法二;方法二只有在输入框有光标的时候才会起作用,无光标的时候就没法触发。

        所以两种方法配合使用,就可以完美实现不同Theme下光标颜色的切换。
        转载请注明出处:http://blog.csdn.net/skynullcode

Android之自定义EditText光标和下划线颜色

Android之自定义EditText光标和下划线颜色 标签: androidUI控件 2017-05-22 13:38 924人阅读 评论(4) 收藏 举报  分类: ...

iOS 自定义UITextField中的光标颜色、长度或高度

方法1: [objc] view plain copy  print? [[UITextField appearance] setTintColor:[UIColor bla...

Android之自定义EditText光标和下划线颜色

最近在写些小Demo复习基础,在用到EditText的时候突然发现之前几乎没有注意到它的光标和下划线的颜色,于是花了不少时间,看了不少博客,现在就来总结和分享一下收获。1、第一印象:原生的EditTe...

自定义UISearchBar 适配IOS6和IOS7 修改放大镜图标 修改光标颜色 修改边框颜色 placeholder颜色 设置文本框背景

文章转自:http://blog.csdn.net/zhang_red/article/details/21447535 总结下常用的几点: 1、修改放大镜图标 ...
  • Man_OC
  • Man_OC
  • 2015年10月16日 14:21
  • 1503

SuperMap Objects .NET 自定义鼠标光标

  • 2017年12月14日 11:25
  • 11.41MB
  • 下载

自定义光标

  • 2014年03月09日 10:46
  • 4KB
  • 下载

Windows学习心得【自定义光标】

#include #include "resource.h" LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;//首先是一个回调函数的...

在按钮上显示自定义光标的资源

  • 2010年07月01日 14:02
  • 69KB
  • 下载

托盘,自定义光标,图标

  • 2008年01月25日 09:31
  • 92KB
  • 下载

TextView/EditText字体阴影 ,自动换行,焦点获取,输入法回车键前往,自定义光标

Android字体阴影  strings.xml文件定义字符串中的标签  Android TextView 自动换行问题  关于android软键盘enter键的替换与事件监听  软件盘的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自定义NSSearchField光标颜色
举报原因:
原因补充:

(最多只允许输入30个字)