我正在为iPhone App设置UIGestureRecognizer。 我在InterfaceBuilder中将长按手势识别器从对象库拖到必须接受手势的视图中。InterfaceBuilder中的UIGestureRecognizer目标/操作
以这种方式添加手势识别器后,它具有指向应接受该手势的视图的引用出口集合。
然后在视图控制器我添加一个IBOutlet指向GestureRecognizer
IBOutlet UILongPressGestureRecognizer *gestRec;
和手势识别相应的动作
-(IBAction)longPress:(id)sender;
因此,手势识别器显示界面后Builder中的出口和动作名为longPress:,目标名称为ControlManager
但是我的程序在iPhoneSimulator中长按手势时崩溃。当我的NSLog我GestureRecognizer的描述,显示了以下的输出:
<UILongPressGestureRecognizer: 0x6859620;
state = Possible;
view = <UIView 0x6859e20>;
target= <(action=longPress:, target=<ControlManager 0x6859af0>)>>
我认为这个问题是在最后一行,它应该是这样的:
target=<ControlManager 0x6859af0>;
action=longPress:
难道我做错了什么?
你实现长按:在ControlManager?你能发布崩溃日志吗? – Felix 2012-02-28 16:37:32
是的,我喜欢。崩溃日志如下: - [__ NSCFString longPress:]:无法识别的选择器发送到实例0x686a8d0 – BartoNaz 2012-02-28 19:31:51
也许你在代码中添加另一个目标,一个字符串。这将解释错误信息和崩溃。手势识别器描述看起来没问题。请注意,手势识别器可以有多个目标/动作。 – Felix 2012-02-28 23:27:54