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

这可能吗?


当前回答

杜格什的方法确实有效。

我也多次使用这样的KVC解决方案。 尽管它似乎没有证件,但它是有效的。坦白地说,你什么都不用 private方法-只有键值编码,这是合法的。

附注:昨天我的新应用出现在AppStore时,这种方法没有任何问题。当我使用KVC改变一些只读属性(如navigatonBar)或私有ivars时,这并不是第一次。

其他回答

斯威夫特3:

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

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

看看这个Stackoverflow的问题

yourTextField.tintColor = [UIColor whiteColor];

如果你在代码中设置它,它就会工作,因为在Interface Builder (Xcode 6.1.1)中,不知为何颜色触发器不会这样做。它非常适合,不需要更改任何外观代理。

对于在SwiftUI中搜索Textfield的人来说,这是accentColor:

TextField("Label", text: $self.textToBind).accentColor(Color.red)

接口生成器版本与Swift

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