2

我在我的项目中使用 NSPredicateEditor。我的其中一行有 2 个弹出按钮和右侧的文本字段。如果我在文本字段中输入了某些内容,当我从任一弹出按钮中选择不同的菜单项时,文本字段中的文本将被删除。这似乎是默认行为,我不希望删除该文本。我已经尝试了我能想到的一切,但似乎无法处理这个问题。任何想法如何改变这种行为?

4

2 回答 2

0

您可以使用 NSUserDefault 保存数据,它将保存和加载数据(除非用户这样做,否则它不会删除您的数据)。

于 2012-11-25T02:14:44.283 回答
0

通过行模板的templateViews属性访问文本字段。

这允许您获取已输入到文本字段中的自定义值。值改变时保存。

class YourCustomRowTemplate : NSPredicateEditorRowTemplate {

    func printTextFieldValues() {
        let templateViews = super.templateViews

        for view in templateViews {
            if let textField = view as? NSTextField {
                let text = textField.stringValue

                print("Text in the texfield is: \(text)")
            }
        }
    }

}

NSPredicateEditorRowTemplate您可以通过子类化和覆盖方法来以相同的方式设置值templateViews

于 2017-02-06T17:37:06.440 回答