NSPredicateEditorRowTemplate, указывающий Key Path с пробелами? - PullRequest
3 голосов
/ 10 мая 2011

Как и в предыдущем вопросе, я неохотно отказался от использования IB / Xcode4 для редактирования NSPredicateEditor и сделал это исключительно в коде.

В способе редактирования полей в графическом пользовательском интерфейсе ключевые пути могут быть указаны с пробелами, такими как «имя поля», и это заставляет их работать как ключевые пути в стиле 'fieldName', в то же время отображая их в пользовательском интерфейсес пробелами.Как мне сделать это в коде?Когда я указываю их с пробелами, они не работают.Когда я указываю их в camelCase, они работают, но отображаются в camelCase.Я просто добавляю несколько выражений NSE, например:

[NSExpression expressionForKeyPath:@"original filename"]

1 Ответ

3 голосов
/ 01 октября 2011

Правильный способ получения удобочитаемых строк в представлениях строк редактора предикатов - использовать возможности локализации NSRuleEditor и NSPredicateEditor.

Если вы будете следовать инструкциям в этом блоге , у вас будет все необходимое для локализации редактора.

В качестве примера предположим, что ваш путь к ключу fileName, вы поддерживаете 2 оператора (is и contains) и хотите, чтобы пользователь вводил строку. В итоге вы получите файл строк, который выглядит следующим образом:

"%[fileName]@ %[is]@ %@" = "%1$[fileName]@ %2$[is]@ %3$@";
"%[fileName]@ %[contains]@ %@" = "%1$[fileName]@ %2$[contains]@ %3$@";

Вы можете использовать этот файл, чтобы добавить удобочитаемые материалы и даже изменить порядок вещей:

"%[fileName]@ %[is]@ %@" = "%1$[original filename]@ %2$[is]@ %3$@";
"%[fileName]@ %[contains]@ %@" = "%3$@ %2$[is contained in]@ %1$[original filename]@";

Как только вы локализовали файл строк, вы передаете этот файл обратно в редактор предикатов, и он извлечет переведенные значения, выполнит свою магию, и все будет отображаться правильно.

...