问题标签 [first-responder]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 试图理解 nibs 中的 First Responder 对象
让我简短地总结一下:nib 文件中的“First Responder”是一个对象,它表示具有用户焦点的 UI 控件元素。因此,如果用户单击一个控件,nib 会将单击的 UI 控件设置为 First Responder。在我的应用程序中,我可以从笔尖向那个“急救人员”提供一个出口,这样我就可以向用户通过点击激活的任何内容发送一条消息“制作红色字体颜色”。
然后,如果此 First Responder UI 控件不理解该消息,则该消息将在响应者链中向上传递,直到父元素或祖父(等等)UI 控件元素理解该消息。否则会被忽略。
因此,First Responder 总是建立一个指向具有焦点的 UI 控件的“链接”。那正确吗?
( “First Responder”的完全相同的副本- 我没听错吗?由同一作者)
objective-c - “First Responder”——我说对了吗?
让我简短地总结一下:nib 文件中的“First Responder”是一个对象,它表示具有用户焦点的 UI 控件元素。因此,如果用户单击一个控件,nib 会将单击的 UI 控件设置为 First Responder。在我的应用程序中,我可以从笔尖向那个“急救人员”提供一个出口,这样我就可以向用户通过点击激活的任何内容发送一条消息“制作红色字体颜色”。
然后,如果此 First Responder UI 控件不理解该消息,则该消息将在响应者链中向上传递,直到父元素或祖父(等等)UI 控件元素理解该消息。否则会被忽略。
因此,First Responder 总是建立一个指向具有焦点的 UI 控件的“链接”。是对的吗?
iphone - UiTextField 和 resignFirstResponder
我有一个奇怪的设置。
我有一个View
叫View1和一个ViewController
叫viewController1
在中IB
,View1是ViewController1的子项。
在View1中,我使用代码 a 创建UITextField
并添加为子视图。
在我的Viewcontroller
,我有viewController1 : UIViewController <UITextFieldDelegate>
现在.. 当View1中的文本字段在键盘上获得“完成”按钮时,我想辞职键盘,所以我有
现在的问题是,如何在 TEXTFIELD(在我的视图控制器中定义)和在我的视图中定义的文本字段之间建立连接?
我必须在 interfaceBuilder 中做些什么吗?
也许我完全不在这儿了……
一些提示非常感谢
cocoa-touch - 哪个应该是第一响应者:我的视图还是 UIDatePicker?
我正在创建 的兄弟姐妹UITextField
,但UIDatePicker
不是使用键盘。
我希望多个这样的控件能够很好地相互配合,并且也是标准UITextField
的(即,当我的控件被激活时,将键盘交换为日期选择器,并在激活文本字段时隐藏日期选择器)。
让我感到困惑的一件事是处理第一响应者的状态。UIDatePicker
似乎没有要求成为第一响应者。应该是?当我自己的控件被要求辞去第一响应者时,我可以依靠它不成为第一响应者并隐藏日期选择器吗?
我应该将UIDatePicker
(或其他任何东西)设置为我的控件nextResponder
吗?我不想处理任何事件,我只想确保我的控制在必要时窃取并放弃焦点。
(在这种情况下我没有使用笔尖)
iphone - 带有 TextField 和第一响应者的自定义 TableViewCell
我有一个包含 TextField 的自定义 TableView 单元格,我希望它在视图显示后立即成为第一响应者,但 [textcell.textfield becomeFirstResponder] 不起作用。我知道这是因为它是另一个类中的自定义单元格,我什至在那里尝试过,但没有成功。有谁知道如何解决这个问题?
谢谢...
iphone - 如何将第一响应者从一个 UIView“转移”到另一个?
我有一个 UIView 子类(CustomView
出于这个问题的目的),它自己处理所有touches
事件(开始、移动、结束、取消)。我也有一个与它重叠UIButton
的兄弟。CustomView
例如,我的视图层次结构如下所示:
- UIView(控制器的视图)
- 带框架的自定义视图(0、0、300、300)
- 带框架的 UIButton (0, 0, 100, 50)
一旦用户拖出 UIButton,我希望 CustomView 捕获触摸事件。通过调试日志,似乎该UIControlEventTouchDragExit
事件是要拦截的事件(尽管直到触摸距离按钮大约 100 像素时它才会触发,但这对于这个问题并不重要)。
理想情况下,当拖动退出事件被触发时,按钮将停止接收触摸移动事件,CustomView 将收到一个touchesBegan
事件(即使我需要以某种方式自己伪造一个),并且所有未来的触摸事件(touchesMoved
等)都将发送到自定义视图。
我尝试了以下方法,但没有任何效果:
我认为底层UITouch
对象(在触摸事件中是一致的)没有被重新定位为指向 CustomView。我怎样才能达到预期的效果?
objective-c - 在视图控制器中处理发送给第一响应者的消息
我一定错过了一些简单的东西,但我看不到它。首先,设置:
DATreeView
, 的一个子类NSView
DATreeViewController
, 的一个子类NSViewController
MainMenu.xib
有一个 的实例DATreeViewController
,它被配置为从DATreeView.xib
MainMenu.xib
还有一个 的实例DendreaAppDelegate
,它有一个DATreeViewController
插座(连接到MainMenu.xib
' 的DATreeViewController
实例。Do Something!
,一个连接起来的菜单项,用于向doSomething:
第一响应者发送消息。- 并非巧合,
DATreeViewController
有一个动作叫doSomething:
.
我想要的是Do Something!
菜单项触发doSomething:
操作DATreeViewController
,让我们假设我不能直接设置目标/操作连接。我会在这里停下来问,我的设计完全错误吗?我正在尝试做的事情是愚蠢/邪恶/可能在我的上帝眼中让我感到羞耻吗?
不?伟大的。现在,对于我的生活,我无法让菜单项处于活动状态。我在 Snow Leopard 上这样做,如果这有什么不同的话。
为了实现NSView
和之间的良好集成NSViewController
,例如管理响应者链,我遵循了Matt Gallagher 的示例,进行了一项实质性更改:在 NIB 加载过程中NSView
似乎没有收到setViewController:
消息,所以我自己发送该消息DATreeViewController
的loadView
讯息。据我所知,在运行以下代码后applicationDidFinishLaunching:
响应者链按预期设置,即:
我的期望是,作为DATreeViewController
响应者链的一部分,作为响应者链的一部分,作为响应者doSomething:
,并且因为它不实现验证,我所要做的就是使用 Interface Builder 将Do Something!
菜单项连接到 First Responder 代理,doSomething:
作为其操作,菜单项将自动激活。
我究竟做错了什么?感谢大家的宝贵帮助!
objective-c - 如果另一个 NSControl 不处理它,则将事件发送到另一个 NSControl 下的 NSControl
我有多个叠加控件,可以在某些条件下处理鼠标单击。我想要做的是:
- 顶部控件接收
mouseDown:
事件。 - 顶部控件决定它是否处理该
mouseDown:
事件。 - 如果确实如此,请执行某些操作并阻止其他控件接收该
mouseDown:
事件。 - 如果没有,则将事件发送到下面的控件。
- 此控件决定它是否处理该事件。
- 等等
本质上,我试图将事件发送到其“Z-Order”就在顶部控件下方的控件,而顶部控件不需要了解其他控件或在实例化时需要一些特殊设置。
我想到的第一件事是将事件发送到,[topControl nextResponder]
但似乎nextResponder
窗口上的所有控件都是窗口本身,而不是我之前认为的基于 Z-Order 的控件链。
有没有办法在不手动设置下一个响应者的情况下做到这一点?目标是获得一个独立于其他控件的控件,并且可以将其放在窗口上并按预期工作。
提前致谢!
ios - 告诉 UITextField 在嵌入 UITableViewCell 时成为第一响应者
我有一个UITextField
是 a 的子视图UITableViewCell
。
当我的视图加载时,我希望文本字段成为第一响应者。我有一个指向表格单元格中的文本字段的指针,所以我正在尝试这样做:
无论何时调用它,它都会一直返回NO
,根据文档,这意味着文本字段拒绝成为第一响应者......我做错了什么?
编辑:
textfield
正确响应被触摸。然后它会调出键盘。只有当它以becomefirstresponder
编程方式告诉它问题发生时。
objective-c - 在不使用私有 API 的情况下获取当前的第一响应者
一个多星期前我提交了我的应用程序,今天收到了可怕的拒绝电子邮件。它告诉我无法接受我的应用程序,因为我使用的是非公共 API;具体来说,它说,
应用程序中包含的非公共 API 是 firstResponder。
现在,有问题的 API 调用实际上是我在 SO 上找到的解决方案:
如何在屏幕上显示当前的第一响应者?我正在寻找一种不会让我的应用程序被拒绝的方法。