Tag: uiresponder

UIGestureRecognizer接收触摸,但也转发给UIControl

你会如何让一个UIView的UIGestureRecognizer接收一个触摸事件,但也要确保另一个底层/覆盖UIView也接收到这个非常相同的触摸事件? 可以说我有以下的看法 – hierachie: 视图A(蓝色)和B(红色)都是同一个超级视图(灰色)的子视图。 换句话说,他们都是兄弟姐妹,顺序决定哪一个涵盖另一个。 选项1:视图B(红色)有一个常规的UIButton作为其子视图。 选项2:视图A(蓝色)有一个常规的UIButton作为子视图。 鉴于解释的select1:视图A(蓝色)有一个UITapGestureRecognizer (或甚至更多,其他UIGestureRecognizers)附加。 什么是最优雅的方法来确保UIButton确实能够接触到它的所有区域,而且A(蓝色)视图接受了UITapGestureRecognizer触摸? 如果可能的话,解决scheme不应该涉及扩展UIButton类,并手动转发button本身的任何事件。 想象一下,视图B将包含更多的控件,而不仅仅是一个button。 所有这些控件应该以某种方式允许视图A在其UIGestureRecognizer上接收触摸。 我确实提供了两个选项,因为我不关心那些视图(A或B)中的哪一个先到达,只要两者都接收到触摸即可。 到目前为止,我所有的做法都突然传到了死胡同里。 也许一个自定义响应者链将是一个很好的解决scheme? 我一直认为在整个UIKit / UIEvent / UIResponder堆栈中必须有一个优雅的解决scheme。

使用UIKeyCommand检测连续按键

可以持续按键吗? 我正在使用keyCommands :拦截在外部键盘上按下的箭头键,但每次按下只能打1个呼叫。 只要按住按键,我就会喜欢每X毫秒接听多个电话,或者当按键被按下时以及释放时接听电话。 这是我的代码: – (NSArray *)keyCommands { UIKeyCommand *upArrow = [UIKeyCommand keyCommandWithInput:UIKeyInputUpArrow modifierFlags:0 action:@selector(upArrow:)]; UIKeyCommand *downArrow = [UIKeyCommand keyCommandWithInput:UIKeyInputDownArrow modifierFlags:0 action:@selector(downArrow:)]; UIKeyCommand *leftArrow = [UIKeyCommand keyCommandWithInput:UIKeyInputLeftArrow modifierFlags:0 action:@selector(leftArrow:)]; UIKeyCommand *rightArrow = [UIKeyCommand keyCommandWithInput:UIKeyInputRightArrow modifierFlags:0 action:@selector(rightArrow:)]; UIKeyCommand *leftArrowCmd = [UIKeyCommand keyCommandWithInput:UIKeyInputLeftArrow modifierFlags:UIKeyModifierCommand action:@selector(leftArrowCmd:)]; UIKeyCommand *rightArrowCmd = [UIKeyCommand keyCommandWithInput:UIKeyInputRightArrow modifierFlags:UIKeyModifierCommand action:@selector(rightArrowCmd:)]; UIKeyCommand *lCmd = [UIKeyCommand […]

用滑动手势closures键盘(如在消息应用程序中)

当iPhone的Messages应用程序显示键盘时,如果用户从消息tableview开始向下滑动并继续进入键盘区域,键盘将开始closures。 如果在这个过程中他们的手指上下移动,键盘会随之移动。 苹果是用私有API来做这件事,还是有办法像这样控制键盘(我认为)手势识别器?

如何禁用popup菜单项像select,全选,build议…,定义(在UIWebView)?

如何禁用popup菜单项像select , 全选 , build议… , 定义 (在UIWebView )? 我find了关于帮助的下列信息,但不知道如何使用它: 对于编辑菜单命令,这是共享的UIApplication对象。 根据上下文,您可以查询发件人的信息,以帮助您确定是否应启用命令。

我无法在Swift iOS中创buildUIResponder nextResponder

我有一个类的ASTextField在UITextField后扩展,我想定义textFieldResponder。 任何解决scheme写在Swift下面的行? UIResponder* nextResponder = [textField.superview viewWithTag:nextTag]; 已经在Objective-C中编写了? -(BOOL)textFieldShouldReturn:(UITextField*)textField; { NSInteger nextTag = textField.tag + 1; // Try to find next responder UIResponder* nextResponder = [textField.superview viewWithTag:nextTag]; if (nextResponder) { // Found next responder, so set it. [nextResponder becomeFirstResponder]; } else { // Not found, so remove keyboard. [textField resignFirstResponder]; } return NO; // We […]

如何使用return / enter键创buildUIKeyCommand?

我想制作一个只使用[return]键的UIKeyCommand 。 到目前为止我已经尝试过: UIKeyCommand *selectCommand = [UIKeyCommand keyCommandWithInput:@"\n" modifierFlags:0 action:@selector(chooseSelection:)]; input键没有全局常量,就像UIResponder.h上,下,左,右和转义一样: // These are pre-defined constants for use with the input property of UIKeyCommand objects. UIKIT_EXTERN NSString *const UIKeyInputUpArrow NS_AVAILABLE_IOS(7_0); UIKIT_EXTERN NSString *const UIKeyInputDownArrow NS_AVAILABLE_IOS(7_0); UIKIT_EXTERN NSString *const UIKeyInputLeftArrow NS_AVAILABLE_IOS(7_0); UIKIT_EXTERN NSString *const UIKeyInputRightArrow NS_AVAILABLE_IOS(7_0); UIKIT_EXTERN NSString *const UIKeyInputEscape NS_AVAILABLE_IOS(7_0); 还有什么我可以尝试捕获返回/input密钥?

keyboardWillShow调用两次

我有一个键盘通知,如keyboardWillShow和keyboardWillHide的视图 所有的代码处理与我使用的通知是从苹果的示例代码“KeyboardAccessory” 当我第一次进入这个视图时,一切正常。 但是当我从子视图中回到这个视图时,每次我点击一个button说: [myTextField becomeFirstResponder]; keyboardWillShow和keyboardWillHide方法将每次调用两次。 这真是令人困惑, 任何人都可以帮助我吗? 万分感激!

如何将触摸事件发送到iOS中的超级查看?

我正在做一个iPad应用程序。 如何将触摸事件发送到其超级视图? 我正在添加一个总是一些其他活动的视图。 在这一点上,我将scrollview添加到屏幕的一半,在另一半我添加另一个视图。 这一切都正常,现在我想添加一个button和一个小的描述视图,当button被轻敲时会出现,再次点击button时会消失。 为了实现这一点,我采取了覆盖整个视图,并使背景颜色清晰的视图。 我把这个button和描述视图放到这个视图中,但是由于透明视图,它不会滚动。 我想让这个透明的视图忽略它的事件。 可以这样做吗?

为什么AppDelegate从UIResponderinheritance?

我注意到当在Xcode 4.2 beta 4中使用iPhone Master-Detail模板创build一个新项目时,它会: // AppDelegate.h @interface AppDelegate : UIResponder <UIApplicationDelegate> 为什么AppDelegate从UIResponder而不是NSObjectinheritance?

UITableViewCell跳过响应者链

我试图触发一个UITableViewCell子视图中的事件,并让它冒泡响应链,并由自定义的UITableViewCell子类处理。 基本上: SomeView.m (这是UITableViewCell的子视图) [self.button addTarget:nil action:@selector(someAction:) events:UIControlEventTouchUpInside] SomeCustomCell.m – (void)someAction:(id)sender { NSLog(@"cool, the event bubbled up to the cell"); } 为了testing为什么这不起作用,我在ViewController中添加了someAction:方法,而ViewController是最终处理从表视图单元格子视图中冒出的事件的一个,即使Cell应该处理它。 我已经检查过Cell是否在响应链上,并且我已经validation过,在响应者链上和响应者链上的任何视图都会响应事件,如果他们实现someAction:方法的话。 这到底是怎么回事? 这是一个项目,显示它https://github.com/keithnorm/ResponderChainTest这种预期的行为不知何故? 我还没有find任何文档说明UITableViewCell的处理任何不同于其他UIResponder的。