Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 无子类化的事件处理_Objective C_Xcode_Cocoa_Appkit - Fatal编程技术网

Objective c 无子类化的事件处理

Objective c 无子类化的事件处理,objective-c,xcode,cocoa,appkit,Objective C,Xcode,Cocoa,Appkit,我最近看了一些关于如何用Objective C和Cocoa编程的Lynda教程。来自PHP和C的背景,有一件事引起了我的注意——事件处理。在我观看教程时,导师正在进行子类化,以便附加到事件 他最终讨论了如何创建代表并以这种方式参与活动——更好,但仍然不如C#那么容易。然而,我后来发现并不是每件事都有委托,这使得事情变得更加困难 我一直在互联网上寻找一种方法来处理事件,而无需创建子类,这样我就不会得到这个拥有大量文件的应用程序,但毫无用处 我特别尝试为NSSlider对象附加mouseLeave或

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

他最终讨论了如何创建代表并以这种方式参与活动——更好,但仍然不如C#那么容易。然而,我后来发现并不是每件事都有委托,这使得事情变得更加困难

我一直在互联网上寻找一种方法来处理事件,而无需创建子类,这样我就不会得到这个拥有大量文件的应用程序,但毫无用处

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


有没有什么方法可以在不进行任何子类化的情况下附加到事件,或者正在一个子类一个子类地创建我应该习惯的子类?

有几种方法可以处理事件。 正如你所说,子类化可能是最简单的。 使用代理是另一种方式。在我看来,通常是最好的。 另一种选择是使用块


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

如果你只想在移动完滑块后做点什么,只需将它放在动作方法中——当你停止移动滑块时会调用它(如果它没有设置为连续)@rdelmar-我希望它是连续的,因为我有一个标签,随着滑块的移动而更新,并且我希望在触发mouseUp事件后将标签隐藏。然后我认为您需要子类化--这有什么问题?你只需要重写一个方法,mouseUp。如果你在很多不同的对象上有很多事件,这不是有点混乱吗?如果你真的需要将它们全部子类化,这是可能的,但我认为这通常是不必要的。根据对象的不同,很多控件的定制都可以通过委托来完成。谢谢-我只需要习惯子类化就可以了。