Форум программистов, компьютерный форум CyberForum.ru

Objective-C

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

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

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

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

Objective-C
1
2
3
4
-(IBAction) numPressed: (id) sender
{
 
}
вопрос:
как в этой функции узнать, кнопка с какой цифрой была нажата?
есть такая идея: какой-то переменной типа NSString присвоить надпись на кнопке и затем с помощью функции atof() преобразовать строку во float. но не знаю как это реализовать...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 19:23     Как узнать, кнопка с какой цифрой была нажата? (калькулятор)
Посмотрите здесь:
Objective-C Запомнить была ли нажата кнопка
Objective-C Как узнать индекс элемента массива?
PHP Как узнать кнопка какой формы была нажата, если на странице имеется несколько форм, а обработчик один?
C# ASP.NET Как узнать какая кнопка была нажата?
Как узнать, какая кнопка в шаблоне листбокса была нажата? C# WPF
C# ASP.NET Как определить, в какой именно форме была нажата кнопка?
C++ WinAPI Уведомление WM_SYSKEYDOWN: как узнать, какая системная кнопка была нажата?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Хохол
Эксперт C++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
01.06.2012, 13:02     Как узнать, кнопка с какой цифрой была нажата? (калькулятор) #2
[[sender title] intValue]
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"
Хохол
Эксперт C++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
01.06.2012, 19:02     Как узнать, кнопка с какой цифрой была нажата? (калькулятор) #4
У меня работает. Посмотри проект.
Вложения
Тип файла: zip Test.zip (94.6 Кб, 27 просмотров)
napster1991
2 / 2 / 0
Регистрация: 12.03.2012
Сообщений: 33
01.06.2012, 19:54  [ТС]     Как узнать, кнопка с какой цифрой была нажата? (калькулятор) #5
я так понял, ты давно уже проггишь... (я тока недавно начал). вот посмотри-ка. у меня не работает. буду рад узнать причину.
Вложения
Тип файла: rar calc_demo.rar (39.0 Кб, 21 просмотров)
Хохол
Эксперт C++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
01.06.2012, 20:02     Как узнать, кнопка с какой цифрой была нажата? (калькулятор) #6
Не могу, мак только на работе.
napster1991
2 / 2 / 0
Регистрация: 12.03.2012
Сообщений: 33
01.06.2012, 20:05  [ТС]     Как узнать, кнопка с какой цифрой была нажата? (калькулятор) #7
оке... нет проблем. буду ждать твоего ответа.
заранее спасибо. мне очень нужна помощь специалистов.
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]);
}
Хохол
Эксперт C++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
18.06.2012, 23:55     Как узнать, кнопка с какой цифрой была нажата? (калькулятор) #9
А, если речь шла об iOS, то да, возможно. Из вопроса непонятно - я подумал что о маке речь.
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
19.06.2012, 16:06     Как узнать, кнопка с какой цифрой была нажата? (калькулятор) #10
fakir88, пользуйтесь property tag. Очень удобная вещь.
Тем более как я понимаю тут целочисленные значения. Все подходит.
fakir88
0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 5
19.06.2012, 19:36     Как узнать, кнопка с какой цифрой была нажата? (калькулятор) #11
Не вопрос, сам думал по tag'у сделать, прост в данном случае возможна и такая альтернатива, с учетом того что надпись на кнопке конвертируема в int. В данном случае нет лишнего кода, ну или лишних телодвижений. Да и необезательно по тагу получать целочисленное значение, это проперти, как я понимаю, и существует для разделения экземпляров 1 класса. Прошу прощения если выразился коряво(
Lokendow
-8 / 0 / 0
Регистрация: 19.06.2012
Сообщений: 6
19.06.2012, 19:53     Как узнать, кнопка с какой цифрой была нажата? (калькулятор) #12
IBOutlet не пробывал ?
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
20.06.2012, 05:54     Как узнать, кнопка с какой цифрой была нажата? (калькулятор) #13
Lokendow, На кой здесь привязка элемента то ? Он сам себя прекрасно передаст при вызове метода.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.08.2012, 00:03     Как узнать, кнопка с какой цифрой была нажата? (калькулятор)
Еще ссылки по теме:
PHP узнать какая кнопка была нажата php
C++ Узнать какая кнопка была нажата SDL2.0
Узнать, какая кнопка в массиве кнопок была нажата C#
Нужно в первых строках макроса узнать какая именно была нажата кнопка VBA
Как отследить, какая кнопка была нажата C# MVC

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

Или воспользуйтесь поиском по форуму:
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]));
Yandex
Объявления
20.08.2012, 00:03     Как узнать, кнопка с какой цифрой была нажата? (калькулятор)
Ответ Создать тему
Опции темы

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