- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
对于那些不喜欢阅读 20 条评论来寻找答案的人。这是对我有用的:
最终代码:
tableViewAlarms.insertRows(at: [0], withAnimation: .effectFade)
let keyView = tableViewAlarms.view(atColumn: 0, row: 0, makeIfNecessary: false) as! NSTableCellView
self.view.window!.makeFirstResponder(keyView.textField)
问题:
有一个问题。我被困了一段时间让我的 NSTableView 按照我想要的方式工作。我是初学者,使用类、继承和 View 给我带来了很多麻烦。
screenshot, the NSTextField is activated
您可以通过按“+”按钮向 NSTableView 添加一行。
第一个tableColumn中的NSTextField是可编辑的,双击时开始编辑
现在我希望在添加一行时自动激活第一列中的 NSTextField(显示光标,响应通过键盘输入的文本)。
到目前为止我已经尝试过:
class NSTextFieldSubClass: NSTextField {
override func becomeFirstResponder() -> Bool {
return true
}
}
我还玩弄了单元格的绑定(bind)(或者准确地说是 NSTextField 本身),但是因为我真的不知道如何解决这些问题,所以它无处可去
我认为要走的路:
在创建单元格时使 NSTextField 成为 firstResponder,但我不知道如何做。非常感谢任何帮助!!
另外:当光标闪烁时,NSTextField 的状态究竟是如何调用的?
编辑:
至于子类,这就是我所尝试的:
class NSTextFieldSubClass: NSTextField {
override func becomeFirstResponder() -> Bool {
return true
}
}
编辑截图:
编辑2:
编辑3:
编辑4:
最佳答案
在“+”按钮的操作方法的末尾,添加行后执行:
DispatchQueue.main.async(execute: {
// get the cell view
let view = self.tableView.view(atColumn: 0, row: row, makeIfNecessary: false)
if let cellView = view as? NSTableCellView {
// get the text field
if let textField = cellView.textField {
// make the text field first responder
if textField.acceptsFirstResponder {
self.tableView.selectRowIndexes(IndexSet(integer:row), byExtendingSelection: false)
self.tableView.window?.makeFirstResponder(textField)
}
}
}
})
关于swift - 在 NSTableCellView 中创建 NSTextField firstResponder(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49327072/
如果我目前没有与应用程序进行任何交互(没有选择文本字段等...),是否还有第一响应者对象?正如我测试的那样,如果我向响应者链发送一条消息,那么当前的 ViewController.view 会收到它,
这个问题在这里已经有了答案: first responder is not being set correctly (2 个答案) 已关闭10 年前。
我创建了一个应用程序,在 ViewController.m 和 viewDidLoad 中,我编写了以下代码 for (UIView* v in self.view.subviews){
我正在尝试让摇动手势起作用。这是一些代码 在我的实现文件中 - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event
对于我的自定义单元格,举个简单的例子,我只有一个 UITextField,有没有办法让 刚刚插入的单元格 becomeFirstResponder insertRowsAtIndexPaths ? 我
我需要跟踪哪个文本字段是我的自定义键盘工作的 firstResponder。在下面的代码中,我大大简化了我的程序,但这是问题的要点: @implementation SimplePickerViewC
我在让文本字段接受 becomeFirstResponder 指令时遇到问题。 我提供了一种自定义机制来在导航栏中创建标题。我有另一个 View Controller 成功地使用了同样的技术。在 vi
为什么我的 InterfaceBuilder 文件中的 FirstResponder 缺少 redo: 连接(在 Received Actions 列表中)? undo: 存在,但 redo: 不存在
你知道(你能看到)为什么我不能退出 FirstResponder 并隐藏键盘吗? 仅供引用:Xcode 9 import UIKit class ViewController: UIViewContr
所以我正在制作一个应用程序,但在从 UISearchBar 和 UITextFields 中关闭键盘时遇到了一些问题。这是我的应用程序的结构: NavigationController -> View
我正在开发一个具有主窗口和多个面板窗口的 Cocoa 应用程序。 当用户通过单击主窗口等离开文本字段时,我需要在 NSTextField(位于面板窗口上)上自动保存一些文本。到目前为止,我已经尝试通过
我有一个 UITextView。我实现了一个导航栏 UIBarButtonItem 来响应触摸并为我的 UITextView 退出 firstResponder。 但是,当调用选择器方法时,键盘不会消
我在 tableviewcontroller 中设置了一个 searchBar。我引用了这个类似的问题 UISearchBar cannot become first responder after
我有一个 Mac 应用程序,它由一个窗口组成,其中包含数量可变的 Pane ,每个 Pane 都包含一个表格 View 。该窗口有一个带有按钮的工具栏,我希望当前选定 Pane 的 VC 能够处理验证
在viewDidLoad()中: searchController = UISearchController(searchResultsController: nil) let cancelButto
我有一个名为 songInfoView 的 View ,其中包含 3 个 UITextFields 和一个 UIButton。我在父 View 中创建一个临时 UITextField 以调出键盘并将
我知道这个问题可能有很多关于 SO 的答案。但是在尝试了在互联网上找到的所有解决方案之后(加上我的一些自定义发明..)我仍然无法实现我想要实现的目标。 故事是这样的: 我有一个 UICollectio
我有四个 UITextField,每个代表 OTP 的一个数字。我希望控件在用户输入代码时转移到连续的文本字段。我的实现如下。 extension FillSignUpCodeController:
我有 UIViewController 并为其 View 创建了自定义类。顺便说一句,我在该类中重新定义了方法“canBecomeFirstResponder”,因此它始终返回 true。当调用 vi
我使用以下代码修改框架大小以适应显示/消失的键盘: - (void)moveCodeViewForKeyboard:(NSNotification*)aNotification up:(BOOL)up
我是一名优秀的程序员,十分优秀!