Форум программистов, компьютерный форум, киберфорум
Objective-C
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 28.02.2012
Сообщений: 3

Затруднение с пониманием. Как в ObjC добраться до свойств какого-нибудь контрола?

28.02.2012, 13:45. Показов 2111. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех !
не сочтите за труд и просветите начинающего..
Изучаю C# и Objective C параллельно... если с первым все более менее понятно
то со вторым печально, поэтому я тут Итак..

1. Как в Obj C добраться до свойств какого нибудь контрола ?! из напр. кода обработчика Buttona(ниже)
Objective-C
1
2
3
4
5
6
7
8
- (IBAction)start:(id)sender 
{
 
 [textfield setIntValue:20]; // здесь мы в textfield установили значение 20, а как напр. мне добраться до
                             // параметров textfield`a из этого же обработчика кнопки ? напр. цвет текста..
                             // в С# это просто бы было - TextField.Font.Color = red; //(как то так)
                             // здесь же засада :( Объясните plz.
}
2. Как написать код в обработчике контрола(по аналогии с С#), вернее где он этот обработчик ???
если с кнопкой понятно более менее, то тут труба.. например как попасть в обработчик OnClick того же
TextField ? странный язык какой то..

3. Почему в теле одной программы переменные не видны ?
например если я объявлю int number = 200; в обработчике кнопки, то во втором обработчике (другая кнопка)
программа не знает о существовании переменной "number" ? может объявление этой переменной нужно вынести
за пределы обработчика ? тогда куда конкретно ? или как то дать понять программе что переменная имеет свойства
public ?



4.Можно ли в контролe ImageWell просто указать адрес в инете с картинкой ? (как нибудь типа
Code
1
ImageWell.Load(@"Http:\\blablabla.jpg"
или нужно писать тучу строк кода ?(смотрел в примерах) В других языках это намного проще...


извините за сумбурность и возможно неверные термины, я только начал изучение Obj C
(скорее всего вопросы несколько туповаты для специалиста, но тем не менее).

Заранее спасибо !
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.02.2012, 13:45
Ответы с готовыми решениями:

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

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

Как добраться до свойств принтера
Вот нужно некоторые документы печатать двухсторонней печатью. Знаю в VB.Net там проще есть параметр типа PrintDouplex. А как быть на VB6,...

6
15 / 16 / 1
Регистрация: 13.12.2009
Сообщений: 138
Записей в блоге: 1
28.02.2012, 21:31
0ff, 1-е цвет текста textfield.textColor=[UIColor greenColor];
https://developer.apple.com в поиске UITextFiled, будет строчка шото типа Class reference, показано свойства класса. его методы
2-e Насколько я знаю у textfiled нету обработчика, ето как в шарпе текстбокс. Можно создать кнопку которая будет обрабатывать етот textfiled
3. Почему в теле одной программы переменные не видны ?
Я так подозровею что вы обьявляете переменную в функции(по вашему в обработчеке), оно и недолжно видеть. Есть файл .h в нем и обьвяляйте
По поводу 4-го незнаю
1
 Аватар для zulkis
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
29.02.2012, 06:29
1. Как и сказали, на developer.apple.com очень много полезного. Цвет шрифта - *.textColor, выставляем, используя класс UIColor.
ЗЫ
C++
1
2
3
4
int i = 100500;
...
setIntValue:i - BAD WAY.
myUITextField.text = [NSString stringWithFormat:@"%d", i]; - Good Way
2.
Цитата Сообщение от xdozorx
Насколько я знаю у textfiled нету обработчика, ето как в шарпе текстбокс. Можно создать кнопку которая будет обрабатывать етот textfiled
Нууу же, если Вы сам не знаете, могли бы хоть людей не путать.

Во первых, у UITextField есть делегат(протокол), есть множество методов которые делегат должен реализовать, которые опять же можно посмотреть на developer.apple.com(О textField протоколе).
Во вторых, никто Вам не запрещает повесить метод на определенное событие следующим образом:
Objective-C
1
2
3
4
5
6
7
8
9
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(100,100,100,21)]; //Создали
[textField addTarget:self/*инстанс класса, отвечающий за реализацию селектора*/ action:@selector(onTap)/*вызываемый метод*/ forControlEvents:UIControlEventsTouchDown];/*событие для обычного клика(в iOS)*/
/*Добавляем на отображение*/
[yourView addSubview:textField];
...
/*Где нибудь реализуем метод*/
- (void)onTap {
   NSLog(@"Hi there!");
}

Не по теме:

xdozorx, Не вводите людей в заблуждение, пожалуйста... Почитайте описание класса UIControl(parent of UITextField)


Почему в теле одной программы переменные не видны ?
3.Ну это Вам нужно читать про область видимости и локальные переменные

4. UIImageView напрямую не поддерживает асинхронную загрузку картинок и отображение. Есть сторонние библиотеки, реализующие это, да и Вы сами сможете сделать это, но чувствую, Вам еще рановато думать об этом.
Можно впринципе закачать и показать картинку через:
Objective-C
1
2
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://asdasd.ru/asd.png"]]];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
Но Это ПЛОХОЙ вариант, ибо dataWithContentsOfURL - синхронный метод.
Опять же:UIImageView

Если есть вопросы - создавайте темы и спрашивайте!
Если есть сомнения - ищите опровержения, либо подтверждения. Потому что много могут написать всякого...
1
0 / 0 / 0
Регистрация: 28.02.2012
Сообщений: 3
29.02.2012, 12:51  [ТС]
большое спасибо что дали пояснения...
вот только ни один из вышеперечисленных примеров у меня не скомпилился - различные ошибки .. Я пока выясняю тонкости применительно к OSX среде, примеры же видимо к IOS.. разбираюсь дальше..

касаемо
Objective-C
1
2
3
4
int i = 100500;
// ...
setIntValue:i // - BAD WAY.
myUITextField.text = [NSString stringWithFormat:@"%d", i]; // - Good Way
не могли бы разъяснить почему вариант setIntValue - хреновая затея ?
и еще
Objective-C
1
2
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://asdasd.ru/asd.png"]]];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
Но Это ПЛОХОЙ вариант, ибо dataWithContentsOfURL - синхронный метод.

а где асинхронный метод ? ведь при синхронном насколько я понял интерфейс встанет колом ?


Еще раз спасибо....
0
 Аватар для zulkis
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
29.02.2012, 13:32
Цитата Сообщение от 0ff Посмотреть сообщение
а где асинхронный метод ? ведь при синхронном насколько я понял интерфейс встанет колом ?
А нигде, насколько мне известно. Самому делать нужно

Цитата Сообщение от 0ff Посмотреть сообщение
почему вариант setIntValue - хреновая затея ?
Банально - семантика. Хотя некоторые книжки приводят в пример setIntValue. В этом ничего страшного нет, работать будет, но он же TEXT field, значит в нем должен лежать текст.
Но скорее всего у меня до сих пор привычка с iOS, там попросту нет данного метода.

Не по теме:

Нужно бороться с глупыми привычками, и юзать то, что есть... :)



Насчет ошибок - пробуйте не UI а NS префикс использовать.
Кнопочка спасибо ниже
1
0 / 0 / 0
Регистрация: 28.02.2012
Сообщений: 3
29.02.2012, 14:17  [ТС]
начало доходить помаленьку но намного медленнее чем с С#

Правильно ли будет все типы переменных, контролы и т.п данные объявлять в заголовочном файле класса ? ( *.h)
вот такие напр.
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
#import <Foundation/Foundation.h>
@interface MyClass : NSObject 
{
@private
    
    IBOutlet NSTextField *show;
    IBAction PressMe:(id)sender;
    NSString *demo;
    int num;
    BOOL drawsBackground;
}
- (IBAction) nextClick:(id)sender;
@end
или это не "кошерно" ?

и еще - в чем разница ? и как правильнее ?
Objective-C
1
2
3
4
- (void) nextClick:(id)sender
{
    // код
}
или
Objective-C
1
2
3
4
- (IBAction) nextClick:(id)sender
{
    //код
}
0
 Аватар для zulkis
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
01.03.2012, 05:23
IBAction тот же void, но это прямое указание Xcodу, что данный метод используется в InterfaceBuilder'e.
Без IBOutlet'a или IBAction'a вы не сможете подключить через IB не UIЭлемент на форме, ни метод соответственно.

Объявлять или нет - это уже Вам решать. А так - это обычный заголовочный файл.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.03.2012, 05:23
Помогаю со студенческими работами здесь

Как программно добраться до свойств поля Rich Text Lite
Скажите пожалуйста как программно добраться до свойств поля Rich Text Lite и изменить размер рисунка.

Как узнать от какого контрола с какой формы пришел запрос?
Кликая по Датагрид на одной форме ChoiceFirm, вызываем вторую Firms для редактирования содержимого этого грида. Но вызываемая форма Firms...

Есть у кого-нибудь прога для чтения курса USD с какого-нибудь сайта?
См. сабж. Лень писать, если честно :)) Наверное, надо делать DOM-модель странички, потом её разбирать и т.д. ... Да и некогда...

Не могу добраться до свойств вложенной формы
Уважаемые коллеги, приветствую! Столкнулся с небольшой проблемой. Представьте, что есть вложенная форма. Не подчиненная как обычно, а...

не могу добраться даже до свойств подключения.
Купил новый комп, поставил на него ОЕМную Windows7 64. Соединил со старым напряму, перетыкнув кабель от старого компа из маршрутизатора в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru