Я делаю настройку, которая включает в себя всплывающее предупреждение, когда пользователь удваивает значок в режиме редактирования. Я попытался закреплять наПроверка двойного касания в режиме редактирования
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
из SBIcon
и затем
{
%orig;
UITouch *touch = [touches anyObject];
if (touch.tapCount == 2 && [[objc_getClass("SBIconController") sharedInstance] isEditing])
{
//pop an alert and do stuff
}
}
Но это, кажется, не работает. Может ли кто-нибудь сказать мне, что не так с этим, и предложить альтернативные способы достижения этого?
EDIT: Я использую теос, если это имеет значение.
Просто FYI вместо 'objc_getClass()' use 'NSClassFromString()', который принимает объект типа 'NSString'. Это немного безопаснее. –
Или, скорее, я бы рекомендовал использовать '@class SBIconController;' в верхней части вашего файла реализации, так как вы, похоже, предположили, что класс будет существовать во время выполнения в любом случае, а затем просто прямо вверх [SBIconController sharedInstance] '. 'NSClassFromString()' и 'objc_getClass()' более полезны для динамически скомпонованных имен классов, а их использование не позволяет избежать времени поиска. –