代码之家  ›  专栏  ›  技术社区  ›  user5739562

Xcode中分段控件中文本的选定状态

  •  7
  • user5739562  · 技术社区  · 10 年前

    我正在使用Swift和Xcode开发我的第一个应用程序。

    在我的一个视图中,我有一个分段控件,它有表情符号作为显示的文本。然而,我有一个问题,每当选择一个表情符号时,它就会变黑,如下图所示:

    segmentedControl

    我认为问题与分段控件的选定状态的文本属性有关,我尝试修复的方法是将选定状态的文字属性设置为与正常状态的文字特性相同:

    override func viewDidAppear(animated: Bool) {
        moodSelector.setTitleTextAttributes(moodSelector.titleTextAttributesForState(.Normal), forState: .Selected)
    }
    

    然而,这似乎行不通。有什么帮助吗?

    1 回复  |  直到 10 年前
        1
  •  8
  •   Rob Md Fahim Faez Abir    8 年前

    您可以设置 NSAttributedStringKey.foregroundColor (以前称为 NSForegroundColorAttributeName )它可以防止这种行为。例如,在Swift 3或4中:

    override func viewDidLoad() {
        super.viewDidLoad()         // whether `viewDidLoad` or `viewDidAppear`, make sure to call the appropriate `super` method, too
    
        let attributes = [NSAttributedStringKey.foregroundColor : UIColor.white]
        moodSelector.setTitleTextAttributes(attributes, for: .selected)
    }
    

    顺从的:

    segmented control with emojis