我想知道在iOS中改变UITextField(和UITextView如果答案相同)中的光标/插入符号的颜色。我看到过OSX开发的答案,但没有iOS的答案。

这可能吗?


当前回答

接口生成器版本与Swift

@IBOutlet weak var tvValue: UITextView! {
        didSet {
            tvValue.tintColor = .black
        }
    }

其他回答

如果UITextField来自UISearchBar,那么首先从searchBar获得textField,然后应用tintColor属性:

let textFieldInsideSearchBar = searchBar.value(forKey: "searchField") as? UITextField
textFieldInsideSearchBar?.tintColor = UIColor.lightGray

斯威夫特3:

  UITextField.appearance().tintColor = UIColor.black
  UITextView.appearance().tintColor = UIColor.black

如果你的目标系统是iOS 7+,这就简单多了。简单地改变tintColor字段的游标使用外观代理,它将应用于整个应用程序:

斯威夫特3.0:

UITextField.appearance().tintColor = .black 

objective - c:

[[UITextField appearance] setTintColor:[UIColor blackColor]];

同样的答案适用于一个单独的UITextField:

斯威夫特3.0:

myTextField.tintColor = .black 

objective - c

[myTextField setTintColor:[UIColor blackColor]];

在iOS7中,你可以简单地改变textField的tintColor

这只能通过访问私有财产来实现,因此可能会导致苹果AppStore应用程序被拒绝。

看看这个Stackoverflow的问题