objective-c - 没有子类化的事件处理

标签 objective-c xcode cocoa appkit

我最近观看了一些有关如何使用 Objective C 和 Cocoa 进行编程的 Lynda 教程。来自 PHP 和 C# 的背景,一件事引起了我的注意 - 事件处理。当我观看教程时,导师正在进行子类化以便附加到事件。

他最终讨论了创建委托(delegate)并以这种方式附加到事件 - 更好,但仍然不如 C# 那么容易。然而,我后来发现并不是所有的东西都有委托(delegate),这使得事情变得更加困难。

我一直在互联网上搜索一种无需创建子类即可处理事件的方法,这样我就不会得到这个具有大量文件的应用程序,但没有成功。

我特别尝试附加到 NSSlider 对象的 mouseLeave 或 mouseOut 事件,以便我可以在完成滑动后隐藏标签。

是否有某种方法可以在不进行任何子类化的情况下附加到事件,或者在子类之后创建子类是我应该习惯的事情?

最佳答案

有几种事件处理方法。 就像你说的,子类化可能是最简单的。 使用委托(delegate)是另一种方式。在我看来往往是最好的。 另一种选择是使用 block 。

在我看来,Objective-C 非常结构化,而且我比 C# 更喜欢它。

关于objective-c - 没有子类化的事件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12888917/

相关文章:

cocoa - Xcode 3.2 在选定文本中查找和替换

iphone - 对 NSCFTimer 感到困惑...它是什么?

ios - Swift 和 Objc 的互操作性——可用性不仅仅在 objc 中起作用

ios - 允许在 Apple Silicon Mac 的 "Designed for iPad"应用程序上调整大小

objective-c - cocoa block 作为强指针与复制

objective-c - 卡住和恢复 Cocoa 任务或线程?

ios - 以编程方式获取导航栏的高度

c++ - 程序集文件 (.s) 抛出错误 : unknown use of instruction mnemonic without a size suffix

iphone - 使用加速计退出 View 时崩溃

objective-c - Xcode OSX,将 NSString 绑定(bind)到 UILabel