我有一個NSTableView,其列被綁定到NSArrayController的子類。 「值」列的每個條目都是文件路徑列表(在模型中),特別是應用程序的PATH和PYTHONPATH。Cocoa中的自定義NSPredicate
我想要的是控制對這些值的編輯,以確保列表中的每個路徑都是有效的。由於我使用的是綁定,因此我認爲我應該編寫某種NSPredicate,但我希望使用我定義的函數來執行過濾器,因爲測試有點複雜。你如何使用NSPredicate的自定義函數?
或者我應該考慮另一種方法?
謝謝。
UPDATE:
我已想出如何使含有文件路徑爲計算結果爲我想要的,使用上的NSString類別,增加了該方法validate
表達式中的字符串。但是我仍然不知道如何將它變成過濾器謂詞。
NSString *s = @"~:~/Desktop";
NSExpression *f = [NSExpression expressionForConstantValue:s];
NSExpression *e = [NSExpression expressionForFunction:f
selectorName:@"validate"
arguments:nil];
我想這將主要是一個過濾謂詞總是吐出什麼表達式的值爲..