С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Objective-C

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
napster1991
2 / 2 / 0
Регистрация: 12.03.2012
Сообщений: 33
#1

Как узнать, кнопка с какой цифрой была нажата? (калькулятор) - Objective-C

31.05.2012, 19:23. Просмотров 2147. Ответов 13
Метки нет (Все метки)

начал писать калькулятор. в файле .xib прикрепил к вьюшке кнопки, связал их с нужными функциями, а кнопки с цифрами привязал к одной единственной функции

Objective-C
1
2
3
4
-(IBAction) numPressed: (id) sender
{
 
}
вопрос:
как в этой функции узнать, кнопка с какой цифрой была нажата?
есть такая идея: какой-то переменной типа NSString присвоить надпись на кнопке и затем с помощью функции atof() преобразовать строку во float. но не знаю как это реализовать...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 19:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как узнать, кнопка с какой цифрой была нажата? (калькулятор) (Objective-C):

Запомнить была ли нажата кнопка - Objective-C
Всем привет! Есть кнопка UIButton, отвечающая за выставление "Лайков" к посту. Для изменения цвета кнопки после нажатия использую следующий...

Как узнать кнопка какой формы была нажата, если на странице имеется несколько форм, а обработчик один? - PHP
Здравствуйте! Подскажите пожалуйста, как узнать кнопка какой из форм была нажата, чтоб можно было в обработчики создать условия? Вот...

Как узнать какая кнопка была нажата? - C# ASP.NET
такой код: HMTL <form action='myasp.asp' method=post name='form1'> <input type=submit name='myname' value='1'> <input type=submit...

Как узнать, какая кнопка в шаблоне листбокса была нажата? - C# WPF
Здравствуйте. Есть шаблон в листбоксе для отображения нескольких полей таблицы и есть кнопка удалить. Я её могу связать с полем из...

Как определить, в какой именно форме была нажата кнопка? - C# ASP.NET
есть такой код: <% set cn = Server.CreateObject('ADODB.Connection') cn.CursorLocation = 3 'adUseClient cn.Open 'sup' ...

Уведомление WM_SYSKEYDOWN: как узнать, какая системная кнопка была нажата? - C++ WinAPI
Всем привет, есть вопрос по WM_SYSKEYDOWN а именно: что значит параметр lParam и как из него узнать какая системная кнопка была нажата...

13
Хохол
Эксперт С++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
01.06.2012, 13:02 #2
[[sender title] intValue]
0
napster1991
2 / 2 / 0
Регистрация: 12.03.2012
Сообщений: 33
01.06.2012, 16:30  [ТС] #3
Цитата Сообщение от Хохол Посмотреть сообщение
[[sender title] intValue]
попробовал:

-(IBAction) nine: (id) sender
{
int k = [[sender title] intValue];
}

не работает. при дебаггинге значение k = 0, хотя нажималась кнопка с надписью "9"
0
Хохол
Эксперт С++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
01.06.2012, 19:02 #4
У меня работает. Посмотри проект.
0
Вложения
Тип файла: zip Test.zip (94.6 Кб, 27 просмотров)
napster1991
2 / 2 / 0
Регистрация: 12.03.2012
Сообщений: 33
01.06.2012, 19:54  [ТС] #5
я так понял, ты давно уже проггишь... (я тока недавно начал). вот посмотри-ка. у меня не работает. буду рад узнать причину.
0
Вложения
Тип файла: rar calc_demo.rar (39.0 Кб, 21 просмотров)
Хохол
Эксперт С++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
01.06.2012, 20:02 #6
Не могу, мак только на работе.
0
napster1991
2 / 2 / 0
Регистрация: 12.03.2012
Сообщений: 33
01.06.2012, 20:05  [ТС] #7
оке... нет проблем. буду ждать твоего ответа.
заранее спасибо. мне очень нужна помощь специалистов.
0
fakir88
0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 5
18.06.2012, 22:25 #8
У UIbutton чет я не нашел свойства title, есть titlelabel и currentTitle в первом случае это UILabel, во втором NSString. Проше со стрингом.
Objective-C
1
2
3
4
-(IBAction)numPressed:(id)sender
{
   NSLog(@"%i",[[sender currentTitle]intValue]);
}
0
Хохол
Эксперт С++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
18.06.2012, 23:55 #9
А, если речь шла об iOS, то да, возможно. Из вопроса непонятно - я подумал что о маке речь.
0
zulkis
683 / 610 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
19.06.2012, 16:06 #10
fakir88, пользуйтесь property tag. Очень удобная вещь.
Тем более как я понимаю тут целочисленные значения. Все подходит.
0
fakir88
0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 5
19.06.2012, 19:36 #11
Не вопрос, сам думал по tag'у сделать, прост в данном случае возможна и такая альтернатива, с учетом того что надпись на кнопке конвертируема в int. В данном случае нет лишнего кода, ну или лишних телодвижений. Да и необезательно по тагу получать целочисленное значение, это проперти, как я понимаю, и существует для разделения экземпляров 1 класса. Прошу прощения если выразился коряво(
0
Lokendow
-8 / 0 / 0
Регистрация: 19.06.2012
Сообщений: 6
19.06.2012, 19:53 #12
IBOutlet не пробывал ?
0
zulkis
683 / 610 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
20.06.2012, 05:54 #13
Lokendow, На кой здесь привязка элемента то ? Он сам себя прекрасно передаст при вызове метода.
0
Death
4 / 4 / 1
Регистрация: 18.10.2009
Сообщений: 44
20.08.2012, 00:03 #14
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    NSLog(@"%@",[sender titleForState:UIControlStateNormal]);
    // текст кнопки можно через метод titleForState, здесь указываем параметр UIControlStateNormal - нормальное обычное состояние, не нажатое.
    const char * _string = [[sender titleForState:UIControlStateNormal] cStringUsingEncoding:NSASCIIStringEncoding];
// далее переводим в строку в Стиле Си, метод для перевода cStringUsingEncoding, у него множество параметров, их посмотрите в докуметации apple. я выбрал кодировку ASCII.
 
    printf("c string = %s", _string);
    int number = atoi(_string); 
// а здесь можно использовать фукцию atoi из станадартной бибилиотеки Си stdlib.h для перевода в int, есть еще функция atof для перевода во float.
 
    printf("number %d", number);
 
//можно конешно написать все в один вызов
 
printf("number %d", atoi([[sender titleForState:UIControlStateNormal] cStringUsingEncoding:NSASCIIStringEncoding]));
0
20.08.2012, 00:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.08.2012, 00:03
Привет! Вот еще темы с ответами:

узнать какая кнопка была нажата php - PHP
Доброго времени суток! Тут возникла проблема и я зашел в ступор, буду благодарен за вашу помощь. Есть много кнопок, имена этих...

Узнать какая кнопка была нажата SDL2.0 - C++
Привет, как в этом примере узнать какая кнопка была нажата, я хочу сделать для каждой кнопки отдельное действия, но не могу понять, как...

Узнать, какая кнопка в массиве кнопок была нажата - C#
как узнать какая кнопка в массиве кнопок была нажата? написал след код но не могу передать обратно полученные координаты с функциями на...

Нужно в первых строках макроса узнать какая именно была нажата кнопка - VBA
Проблема в следующем: есть две кнопки, созданные макросом на своей панельке инструментов. Они запускают один и тот же макрос. Нужно в...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.