Macos Mac OS X Carbon:SelectWindow与ActivateWindow之间有什么区别?可可粉的当量是多少

Macos Mac OS X Carbon:SelectWindow与ActivateWindow之间有什么区别?可可粉的当量是多少,macos,cocoa,macos-carbon,Macos,Cocoa,Macos Carbon,标题基本上概括了我的问题。我想知道Mac Carbon SelectWindow和ActivateWindow(…,TRUE)之间的区别是什么。我在旧的源代码中找到了它们,不知道它们是否可以互换(或者它们的Cocoa等价物可能是什么)。从内存中 SelectWindow是对单击窗口的响应。它把窗口带到前面,激活它,并且(通常)让它成为第一反应者。(我在这里用的是可可术语。)这有点像OrderFront SelectWindow功能可从先前的窗口中删除突出显示 活动窗口,将指定的窗口带到前面,高亮

标题基本上概括了我的问题。我想知道Mac Carbon SelectWindow和ActivateWindow(…,TRUE)之间的区别是什么。我在旧的源代码中找到了它们,不知道它们是否可以互换(或者它们的Cocoa等价物可能是什么)。

从内存中

SelectWindow是对单击窗口的响应。它把窗口带到前面,激活它,并且(通常)让它成为第一反应者。(我在这里用的是可可术语。)这有点像
OrderFront

SelectWindow功能可从先前的窗口中删除突出显示 活动窗口,将指定的窗口带到前面,高亮显示 并生成激活事件以停用以前的 激活窗口并激活指定的窗口。如果指定 窗口已处于活动状态,选择窗口无效。呼叫 当用户在光标移动时按下鼠标按钮时选择Window 位于非活动窗口的内容区域中


Activate Window更新了窗口框架,表明该窗口是第一个响应者。

您实际上不需要知道Cocoa等价物,只需要确定您想要做什么。来自碳的许多需要您实现的事情都是由AppKit为您完成的。碳API的其他范例在可可中并不存在。它们看起来很相似,有许多与普通操作系统类似的钩子,但它们非常不同。

问题是,这些是多平台库(MacOS和Windows)的基类,随着时间的推移,它变成了函数在某种程度上与Windows相当的东西,我早就忘记了为什么在一个地方有一个SelectWindow(而不是ActivateWindow)反之亦然。因此,只要有相同的行为,我现在就尝试在Cocoa中做同样的事情。有意义。听起来好像只是激活窗口或“设置关键点”和“第一响应者”既然我要移植到Cocoa,我想我会让它们都成为MakeKeyWindow和Derfront,并希望它能变成几乎一样的东西。不要尝试从Carbon一行接一行的移植,至少不是为了一个重要的程序。你会让自己很痛苦。你是在使用动力装置还是其他碳框架?我使用的是国产fram工作。几年前,我们在Carbon中启动了这个应用程序,因为它更容易从Windows进行移植,因为我是MacOS和XCode新手,所以当时我想我甚至不想在混合中添加一种未知语言(OBJC)。