X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Как делать окна для терминальных программ
k0ttee
k0ttee
Topic Starter сообщение 24.3.2016, 21:00; Ответить: k0ttee
Сообщение #1


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

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

Чтоб сильно не сходить с ума: можно не писать сложный код, а тырить софт с линукса и пилить к нему окна (чтоб в горнице светло было).

Первый говнософт: найдя ответы на чужие тупые вопросы и ощутив попа-боль от среды разработки, удалось выполнять прогу в проге... осталось завернуть в функцию, пилить окна и рисовать иконки.

Прикрепленный файл  run-terminal.png ( 32,39 килобайт ) Кол-во скачиваний: 1062


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

Мораль: переход со скриптов на компилируемый код с типизацией и выстрелом в ногу - отличный способ развлечься на выходных! Это даже лучше чем позвонить в МЧС и сказать: "У нас дома стриж!" (и ждать пока там оценят шутку). Сложный прикол в том, что новый язык Swift можно перевести на русский как стриж.


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 26.3.2016, 14:35; Ответить: k0ttee
Сообщение #2


Пришло время описывать что под капотом. И наглядно показать - каким недюжим умом надо обладать для быдлокоддинга под яблоко. :D

Дело было в Xcode 6.3 (6D570).

Создается проект, выбирается Cocoa Application, снимается галочка "создать репозиторий" (ибо иначе среда разработки выскажет недовольство), заполняется всякая лабуда, выбирается язык (Swift или Objective-C). Короче говоря, с точки зрения веб-программиста, это "куча телодвижений" вместо "открыть блокнот и коддить".

В левой колонке видим список файлов проекта, выбираем Main.storyboard (это файл интерфейса).
Прикрепленный файл  Main-storyboard.png ( 7,01 килобайт ) Кол-во скачиваний: 1039

Затем в правой колонке тыкаем на вкладку с кнопками и тащим пуш-кнопку на контроллер интерфейса.
Прикрепленный файл  add-button.png ( 40,69 килобайт ) Кол-во скачиваний: 1039


Теперь пора связать кнопку с кодом.

В левой колонке делаем двойной клик по файлу viewcontroller.swift чтобы он открылся в плавающем окошке. Затем, удерживая Ctrl (именно Ctrl а не ⌘), тянем кнопку на окно с файлом кода. Когда перетянули, появится маленькое оконце - в нем надо выбрать как показано ниже (кнопка будет делать экшен, имя - любое чтоб самим было понятно).
Прикрепленный файл  button-connect.png ( 5,45 килобайт ) Кол-во скачиваний: 1039


Вот... Теперь у нас в коде появляется примерно такая конструкция (отступы это хорошо, но я добавил себе комментов чтоб точно не заблудиться).
// кнопка нажата (начало)
@IBAction func buttonPressed(sender: AnyObject) {
    //тут то, что выполнять по нажатию на кнопку
}
// кнопка нажата (конец)


Теперь вывод инфы в тексотовую область.

Тянем текстовую область из левой колонки (wrapping label - многострочная текстовая область).
Прикрепленный файл  wrapping-label.png ( 17,22 килобайт ) Кол-во скачиваний: 1039


Растянув размер и написав в него чего-нибудь, тянем из центральной области в файл с кодом (удерживая Ctrl).
В маленьком диалоге пишем имя (по этому имени код будет обращаться к текстовой области), остальное без изменений.
Прикрепленный файл  text-field-connection.png ( 6,48 килобайт ) Кол-во скачиваний: 1039


В коде появится конструкция с именем текстового поля (я назвал Mult).
@IBOutlet weak var Mult: NSTextField!


Выводить в него текст можно так (как видите - к имени дописывается stringValue):
Mult.stringValue = "k0ttee"


Вот собственно и все, что нужно для нахлобучивания интерфейса. :D

Простым программам хватит такого, когда в нажатие кнопки помещен вывод результата... А логику лучше вынести в отдельные функции, чтоб было удобнее.
// кнопка нажата (начало)
@IBAction func buttonPressed(sender: AnyObject) {
   //тут то, что выполнять по нажатию на кнопку
   Mult.stringValue = "k0ttee" //в текстовую область будет написано k0ttee
}
// кнопка нажата (конец)


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

Выглядит это пока так, но можно навешать свистелок с перделками.
[img]http://ruseo.net/download/file.php?id=10751[/img]

Ну все... жесть пошла, дичь полетела! :diablo: Просто прокрутите вот это _http://white55.ru/smart.html (это инструкция как пользоваться консольной программой smart-ctl, что она умеет и с чем она вас съест).

Пожалуй главное в ней - просмотр сколько блоков было записано на SSD (мое окно уже выводит это).
Прикрепленный файл  smart-ctl.png ( 21,15 килобайт ) Кол-во скачиваний: 1039


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Какой % отказов нормален для сайта?
11 Aloof 2721 Сегодня, 12:48
автор: diviner99
Открытая тема (нет новых ответов) Rebex.io – Ваша инновационная платформа для обмена криптовалюты!
2 Rebex 1157 Вчера, 18:39
автор: Rebex
Горячая тема (нет новых ответов) Betatransfer.net - прием платежей для HIGH RISK проектов, интернет эквайринг и мерчант онлайн оплат
54 arendator 34766 Вчера, 15:16
автор: arendator
Горячая тема (нет новых ответов) ⭕Антидетект браузер AdsPower для эффективной работы с мультиаккаунтами!
83 AdsPower 24381 14.4.2024, 22:52
автор: AdsPower
Открытая тема (нет новых ответов) Как вывести деньги в Украине с заблокированного Юмани ?
28 freeax 4566 12.4.2024, 1:22
автор: PostMan1


 



RSS Текстовая версия Сейчас: 16.4.2024, 14:40
Дизайн