Как получить имя отправителя NSButton
-
09-10-2019 - |
Вопрос
У меня есть несколько NSButtons, которые прикреплены к одному iBaction. Мне нужно дифференцировать внутри метода между различными кнопками. Я попробовал следующее, но это не работает:
for (int i = 0; i++; i < 7) {
if (sender == [NSString stringWithFormat:@"button%i", i+1])
{
NSLog(@"sender is button %i", i+1);
}
}
Как это можно заставить работать?
Решение
-(IBAction)buttonPressed:(id)sender
{
switch ( [sender tag] )
{
case 1:
//blah blah blah
break;
case 2:
//blah blah etc.
break;
}
}
Я не могу сделать работу за вас, но ....
Замените эту линию
if (sender == [NSString stringWithFormat:@"button%i", i+1])
с этой линией
if ([sender tag] == i)
Обратите внимание, что формат вашего петли недействителен:
for (int i = 0; i++; i < 7)
S/B:
for (int i = 0; i < 7; i++)
Другие советы
Отправитель в действии BtnClicked - это нажатый объект кнопки, который был нажат. Из этого вы должны иметь возможность получить необходимую вам информацию
-(IBAction) btnClicked: (id) sender {
NSLog(@"Button clicked %@", sender);
// Do something here with the variable 'sender'
}
Если вы храните ценность в sender.tag
, вы можете определить кнопку таким образом
Не связан с StackOverflow