【问题标题】:NSView message when being shown and when not?NSView 消息何时显示,何时不显示?
【发布时间】:2012-07-02 22:01:06
【问题描述】:

是否有某种委托方法在显示 NSView 时发送消息?当 NSView 显示在屏幕上时,我需要运行 NSTimer,当它不显示时我需要使其无效,这样它就不会一直在后台不必要地运行。

【问题讨论】:

    标签: objective-c nstimer nsview


    【解决方案1】:

    根据您实现代码的方式,您可以将 NSView 子类化并创建自己的委托协议,为各种 NSView 事件(如 setHidden"removeFromSuperview")发送适当的消息。

    如果您将此视图嵌入到单个 NSWindow 对象中,则可以将 NSWindow 子类化,然后为“close”或“performClose:”抛出自定义委托协议方法。当然,在这种情况下,实际上已经为您定义了一个"NSWindowDelegate" protocol

    【讨论】:

    • 感谢您的回答,但您能否更具体地说明我如何使用 setHidden 使其表现得像委托方法?
    • 您的 NSView 会只出现在一个 NSWindow 对象中,还是会出现在许多不同的独特窗口之一中?
    • 如何检测 UITableViewCell 何时离开屏幕然后取消计时器? Other people have asked this question before.
    • 那篇文章对我没有任何帮助。我确实找到了这个委托方法- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex,但我现在还不能让它工作。但我需要一个willHideCell 版本。
    猜你喜欢
    • 2016-04-07
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 2013-04-17
    • 1970-01-01
    • 2021-07-30
    • 2015-07-22
    • 1970-01-01
    相关资源
    最近更新 更多