我的目标是简单地将正确的button.titleLabel.text
发送到我的视图控制器的handleLongPress函数。这是我的功能:
- (IBAction)handleLongPress:(UILongPressGestureRecognizer *)sender {
UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc]
initWithTarget:self action:@selector(handleLongPress:)];
lpgr.minimumPressDuration = 1.0;
[self setUserIntendsToChangeUIsoTheUIisLockedUntilUserSelection:YES];
NSLog(@"sender? %@", sender);
if ([sender.view isKindOfClass:[UIButton class]]) {
self.myButton = (UIButton *)sender.view;
NSLog(@"!!!!! %@", self.myButton.titleLabel.text);
[self.view addSubview:self.scrollPickerView];
}
}
这是我的故事板,我创建了一个按钮“H”,“Cl”,“C”等的引用插座集合。
每个按钮都会响应UILongPressGesture
,但是记录的消息NSLog(@"!!!!! %@", self.myButton.titleLabel.text);
始终引用相同的UIButton“C”,即使我按住了不同的按钮。我做错了什么?如何让每个按钮将其标题发送到handleLongPress函数?
答案 0 :(得分:1)
我之前遇到过这种情况。在Interface Builder中,您只有1 UILongPressGestureRecognizer
。每个视图都需要单独的UILongPressGestureRecognizer
个。您应该在Interface Builder中看到的是底栏上的一长排UILongPressGestureRecognizer
图标。
作为旁注:
UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc]
initWithTarget:self action:@selector(handleLongPress:)];
lpgr.minimumPressDuration = 1.0;
是浪费的代码。您创建一个新变量并且不对其执行任何操作。