NSPredicateEditor正在清除其NSTextField的值

时间:2012-11-25 01:59:38

标签: objective-c xcode macos cocoa nspredicateeditor

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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方法,以相同的方式设置值。