Comments 27
Хороший пример. Я думаю, что стоило бы еще расширить его альтернативной версией, без биндингов, дабы показать, как бингинги иногда упрощают работу (впрочем, иногда они ее ой как усложняют).
«фреймворки вроде Qt… не обеспечивают нативный Look and Feel»
ЧТО?!
ЧТО?!
— «ЧТО?!»
Джонатан Айв о Qt-приложении для Mac OS X
Джонатан Айв о Qt-приложении для Mac OS X
Пользуюсь KeePassX, которая как раз написана на Qt. И могу сказать что она ужасна как в плане внешнего вида, так и в плане юзабилити.
Блог называется «Разработка под Apple iOS», а разработка программы под Mac?
Глядя на URL блога (http://habrahabr.ru/blogs/macosxdev/136265/), думаю что macosxdev обозначает общее название для двух этих платформ.
И еще думаю что при разработке под iOS используются те же подходы.
Поэтому статья должна быть интересна и разработчикам под iOS.
Поэтому статья должна быть интересна и разработчикам под iOS.
Изначально блог был как раз про разработку про мак, iPhone SDK тогда еще даже не вышла, потом по не понятной причине его переименовали (и как верно уже заметил заметили, в URL следы остались), а альтернативы не оставили. Тут уместнее другой вопрос — что тут делают посты про iOS?
Пожалуйста, поправьте или перенесите этот топик таким образом, чтобы читатель ясно понимал — все, о чем здесь сказано имеет отношение к программированию только и исключительно под Mac OS X. В iOS используется совершенно другой подход и иные техники работы с таблицами.
Забыл добавить: спасибо! )
По-моему что речь идет именно о Mac OS X понятно уже из первого предложения.
Во время публикации этот блог мне показался самым подходящим. Как написал int80h выше этот блог был первоначально предназначен для Mac OS X, потом переименован в iOS. Отсюда и путаница.
Альтернативный вариант — блог Mac OS X, но мне кажется там публикуются статьи не относящиеся к разработке.
Во время публикации этот блог мне показался самым подходящим. Как написал int80h выше этот блог был первоначально предназначен для Mac OS X, потом переименован в iOS. Отсюда и путаница.
Альтернативный вариант — блог Mac OS X, но мне кажется там публикуются статьи не относящиеся к разработке.
Ну я бы не был столь категоричен, в ios тоже можно использовать KVC & KVO
KVC и KVO-то есть. А Cocoa Bindings нет. NSCell, NSArrayController тоже отсутствуют. Не говоря уж о таких критически важных для целевой аудитории таких статей нюансов, как разные имена классов и методов в UIKit и AppKit.
Однако, чего только на свете не бывает. Если научите, как применить KVC и KVO для заполнения данных таблицы без использования делегатов (пусть даже программно, без работы с IB) — буду благодарен.
Однако, чего только на свете не бывает. Если научите, как применить KVC и KVO для заполнения данных таблицы без использования делегатов (пусть даже программно, без работы с IB) — буду благодарен.
На счёт биндингов честно, не знаю, надо попробовать, в своих проектах IB не использую. Но тем не менее, на мой взгляд, некоторые пересечения есть, пусть и не такие большие.
А на счёт заполненеия таблицы без делегата, только если использовать какие нибудь надстройки, можно посмотреть в сторону нимбуса, на сколько я помню, он может принимать массив описания ячеек и создавать тайбл вью.
А на счёт заполненеия таблицы без делегата, только если использовать какие нибудь надстройки, можно посмотреть в сторону нимбуса, на сколько я помню, он может принимать массив описания ячеек и создавать тайбл вью.
Офигеть! Я больше не верю в случайности!
Я начал изучать Cocoa 2 недели назад и сейчас настал момент изучить Table View для одной цели. 3 дня искал нормальные туториалы на всех возможных ресурсах (developer.apple.com; stack Overflow etc.) Последние 3 дня. И тут на любимом ресурсе такая прекрасная статья.
Извините за текст. Эмоции нахлынули от радости. Надеюсь, правильно меня поймут.
Я начал изучать Cocoa 2 недели назад и сейчас настал момент изучить Table View для одной цели. 3 дня искал нормальные туториалы на всех возможных ресурсах (developer.apple.com; stack Overflow etc.) Последние 3 дня. И тут на любимом ресурсе такая прекрасная статья.
Извините за текст. Эмоции нахлынули от радости. Надеюсь, правильно меня поймут.
А причем тут Apple iOS? Ведь статья касается только Mac OS.
Хотелось бы увидеть, как реализовать тоже самое, но без использования IB.
Для этого можно использовать класс NSTimer и метод scheduledTimerWithTimeInterval этого класса [5].
Но не нужно. Для данного примера лучше использовать NSWorkspaceDidLaunchApplicationNotification и NSWorkspaceDidTerminateApplicationNotification [4].
Добавляем в applicationDidFinishLaunching:
Изменяем прототип метода (и сам метод) updateProcessList:
Меняем вызов этого метода в applicationDidFinishLaunching на:
Не забываем отписаться от уведомлений в applicationWillTerminate:
Но не нужно. Для данного примера лучше использовать NSWorkspaceDidLaunchApplicationNotification и NSWorkspaceDidTerminateApplicationNotification [4].
Добавляем в applicationDidFinishLaunching:
NSNotificationCenter *wsc = [[NSWorkspace sharedWorkspace] notificationCenter];
[wsc addObserver:self selector:@selector(updateProcessList:) name:NSWorkspaceDidLaunchApplicationNotification object:nil];
[wsc addObserver:self selector:@selector(updateProcessList:) name:NSWorkspaceDidTerminateApplicationNotification object:nil];
Изменяем прототип метода (и сам метод) updateProcessList:
- (void) updateProcessList:(NSNotification*)notification;
Меняем вызов этого метода в applicationDidFinishLaunching на:
[self updateProcessList:nil];
Не забываем отписаться от уведомлений в applicationWillTerminate:
NSNotificationCenter *wsc = [[NSWorkspace sharedWorkspace] notificationCenter];
[wsc removeObserver:self name:NSWorkspaceDidLaunchApplicationNotification object:nil];
[wsc removeObserver:self name:NSWorkspaceDidTerminateApplicationNotification object:nil];
Сразу же хочется сказать спасибо за то, что указываете версию xCode, которую используете.
Когда я начинал разбираться в программировании для mac OS и читал статьи с информацией и примерами приложений сильно терялся от того, что вид моего xCode иногда кардинально отличался от того, который был в примерах, что вызывало у меня ярое негодование. А отличался он всегда, так как переводы на русский выходили с огромной задержкой, да и количество весьма скудное.
Когда я начинал разбираться в программировании для mac OS и читал статьи с информацией и примерами приложений сильно терялся от того, что вид моего xCode иногда кардинально отличался от того, который был в примерах, что вызывало у меня ярое негодование. А отличался он всегда, так как переводы на русский выходили с огромной задержкой, да и количество весьма скудное.
При быстром скроллинге списка процессов строки отображаются неверно, повторяются и наезжают друг на друга.
Ещё у новичков типа меня в Xcode 4.3 могут быть проблемы с этим:
скриншот

Ещё у новичков типа меня в Xcode 4.3 могут быть проблемы с этим:
Затем открываем Size inspector и на картинке Autosizing выбираем все элементы — это необходимо, чтобы Table View растягивалась вместе с окном.Autosizing просто может не отображаться, в этом случае по совету со Stackoverflow нужно в File Inspector (первая вкладка в правом сайдбаре) снять галочку с Use Auto Layout.
Sign up to leave a comment.
Использование Table View