2011-12-02 88 views
2

我看TVAnimationGestures从2010年WWDC,并在TableVieWController.m,它们将覆盖canBecomeFirstResponder:为什么重写canBecomeFirstResponder?

- (BOOL)canBecomeFirstResponder { 
    return YES; 
} 

有他们这样做的理由?我没有看到这个方法在任何地方被调用。谢谢。

+1

他们是否在控制器代码的任何地方使用'UIMenuController'?如果是这样,为了显示和接收菜单,来自菜单控制器的消息的接收者必须能够成为第一响应者。 – gschandler

+0

@gschandler是的,他们确实使用UIMenuController在表格上长按。那么,您是否需要在每次使用UIMenuController时重写该方法? –

+0

是的,这是正确的。 – gschandler

回答

4

因此,作为回答,你可以标记你的问题......

他们使用的是UIMenuController样本内,并以从控制器到控制器接收邮件,你必须使你的控制器中的第一个响应者(并接受成为第一个响应者通过canBecomeFirstResponder

0

该方法由Cocoa框架调用,通常不用于查看控制器是否应成为第一响应者。虽然我没有看过那个具体的例子,但它可能允许表格是可编辑的。

0

我要重写canBecomeFirstResponder在自定义的UIView,所以我可以使用自定义InputView和InputAccessoryView。

Custom Views for Data Input

我不得不这样做,因为如果我使用UITextField或UITextView,硬件键盘会颠覆更有限的屏幕键盘。

相关问题