gpt4 book ai didi

cocoa - 当用户完成编辑 NSTableView 中的单元格时,如何收到通知?

转载 作者:行者123 更新时间:2023-12-03 16:09:55 26 4
gpt4 key购买 nike

我需要知道用户何时完成 NSTableView 中单元格的编辑。该表包含所有用户的日历(从 CalCalendarStore 获取),因此为了保存用户的更改,我需要将更改通知 CalCalendarStore。但是,我找不到用户完成编辑后调用的任何内容 - 我猜想表的委托(delegate)中会有一个方法,但我只看到一个在编辑开始时调用的方法,而不是在编辑结束时调用的方法。

最佳答案

通过使用 NSNotificationCenter 或使用 NSControl 方法,无需子类化 NSTableView 即可获得相同的结果。请参阅此处的 Apple 文档:

http://developer.apple.com/library/mac/#qa/qa1551/_index.html

这只是几行代码,对我来说效果很好。

<小时/>

如果您可以成为 NSTableView委托(delegate),则只需实现该方法

- (void)controlTextDidEndEditing:(NSNotification *)obj { ... }

事实上,NSTableView 是它包含的 NSControl 元素的 delegate,并将这些方法调用转发给它的 delegate (还有其他有用的方法)

否则,请使用NSNotificationCenter:

// where you instantiate the table view
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(editingDidEnd:)
name:NSControlTextDidEndEditingNotification object:nil];

// somewhere else in the .m file
- (void)editingDidEnd:(NSNotification *)notification { ... }

// remove the observer in the dealloc
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self
name:NSControlTextDidEndEditingNotification object:nil];
[super dealloc]
}

关于cocoa - 当用户完成编辑 NSTableView 中的单元格时,如何收到通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/194192/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com