Узнайте местоположение исполняемого файла в Какао

Важно обратить внимание на мелкие детали на странице Angular Flex Layout . Подобные вещи начинали с меня несколько раз, когда я не был знаком с flex до того, как начал его использовать.

Использование fxLayout в основном говорит элементу, каким будет контейнер . В этом случае вы, вероятно, захотите переместить *ngFor в тот же div, в котором есть fxFlex="30", и, если повезет, вы могли бы переместить их обоих на карту.

В зависимости от того, для чего вам это нужно, Grid также может очень помочь.

6
задан Neo 16 October 2008 в 15:48
поделиться

4 ответа

Хитрая часть попытки сделать это - то, что пользователю можно было установить их оболочку на что-либо: sh, удар, csh, tcsh, и так далее, и каждая оболочка настраивают свою терминальную среду по-другому. Я не уверен, перешел ли я к проблеме этому сам, но если бы Вы действительно хотите, вот маршрут, которым я следовал бы.

Первый шаг должен выяснить оболочку пользователя. На OS X эта информация хранится в Службах каталогов, к которым можно получить доступ или через API в DirectoryService.framework или при помощи dscl инструмент командной строки. DirectoryService API является королевской болью в заднице, таким образом, я, вероятно, пошел бы путем CLI. В Какао можно использовать NSTask для выполнения инструмента с аргументами для получения оболочки пользователя (я оставлю детали этого для в другом месте). Команда посмотрела бы что-то как:

dscl -plist localhost -read /Local/Default/Users/username UserShell

Это возвратит текст XML, который можно интерпретировать как plist и преобразовать в NSDictionary, или можно опустить -plist опция и синтаксический анализ текстовый вывод самостоятельно.

После того как Вы знаете путь к оболочке пользователя, следующий шаг должен был бы выполнить ту оболочку и сказать ей работать env команда для распечатывания среды пользователя. Похоже, что большинство оболочек принимает a -c параметр командной строки, который позволяет Вам передать в строке для выполнения - я предполагаю, что необходимо будет просто предположить, что как являющийся единым интерфейсом для любой оболочки пользователь выбрал.

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

9
ответ дан 8 December 2019 в 04:10
поделиться

Связанный с ответом Brian Webster:

Более легкий способ получить оболочку Пользователя состоит в том, чтобы использовать класс NSProcessInfo. например,

NSDictionary *environmentDict = [[NSProcessInfo processInfo] environment];
NSString *shellString = [environmentDict objectForKey:@"SHELL"];

Который легче, чем использование dscl и парсинг вход XML.

8
ответ дан 8 December 2019 в 04:10
поделиться

Как, вероятно, это, что у Ваших пользователей будут пользовательские версии инструмента, который Вы используете (и как, вероятно, это, что Ваше приложение совместимо с произвольными версиями инструмента)? Если ответ "не очень", то рассматривают использование пути к предоставленному систему инструменту по умолчанию и предоставления опытным пользователям способа указать их собственный путь как предпочтение.

2
ответ дан 8 December 2019 в 04:10
поделиться

Разве путь для Средства поиска не является (и следовательно, никакие запущенные GUI приложения Какао) набором от Вашей оболочки входа в систему? Если бы Ваша оболочка входа в систему и оболочка, которую Вы используете в Terminal.app, не являются тем же, это, вероятно, привело бы к некоторому беспорядку.

Эта информация могла бы быть полезной: http://lists.apple.com/archives/cocoa-dev/2005/Oct/msg00528.html

По-видимому, "правильный" способ установить переменные среды для процессов GUI находится в скрытом .plist файле. Я уверен, что знал это однажды, затем быстро забыл это.

1
ответ дан 8 December 2019 в 04:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: