首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSTextField辞职first responder

NSTextField辞职first responder
EN

Stack Overflow用户
提问于 2010-12-14 00:35:34
回答 3查看 7.3K关注 0票数 4

我正在尝试让我的文本字段在用户完成编辑时(比如他们按回车键时)退出first responder。委托方法正在被调用,但我现在拥有的方法不起作用,该如何做才是正确的呢?

代码语言:javascript
复制
- (BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor
{
    [fieldEditor resignFirstResponder];
    return YES;
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-14 01:29:30

在关于-resignFirstResponder方法的文档中:

使用NSWindow makeFirstResponder:方法,而不是此方法,使对象成为第一响应者。永远不要直接调用此方法。

这段代码应该能做到这点:

代码语言:javascript
复制
[myWindow makeFirstResponder:nil];
票数 23
EN

Stack Overflow用户

发布于 2015-07-28 02:49:03

代码语言:javascript
复制
- (void)controlTextDidEndEditing:(NSNotification *)obj {

   [self.window makeFirstResponder:view];
}

其中“NSView”是NSTextView控件的父视图。

票数 8
EN

Stack Overflow用户

发布于 2013-08-09 09:11:13

我相信您正在寻找NSControl委托方法:

代码语言:javascript
复制
- (void)controlTextDidEndEditing:(NSNotification *)notif

在你的NSTextField委托中实现这个方法(很容易在IB中设置)。

然后您更改响应器的请求,例如

代码语言:javascript
复制
[self.window selectNextKeyView:self]

应该行得通。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4431068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档