可可 – 在Mac应用程序中轻松切换“视图控制器”(类似于iOS)

可可 – 在Mac应用程序中轻松切换“视图控制器”(类似于iOS),第1张

概述我来自iOS背景,是Mac OSX(coco app)开发的新手. 从苹果示例代码项目“Simple Cocoa App”开始,我希望能够以任何类似于iOS应用程序的方式在不同的“视图控制器”之间切换,甚至只在NSView之间切换. 不幸的是,我无法找到实现这一目标的方法 – 互联网缺乏与关键词相关的资源,例如“在可可应用中查看切换,在mac应用程序中切换视图,mac app dev教程”…… 你 我来自iOS背景,是Mac OSX(coco app)开发的新手.

从苹果示例代码项目“Simple Cocoa App”开始,我希望能够以任何类似于iOS应用程序的方式在不同的“视图控制器”之间切换,甚至只在NSVIEw之间切换.

不幸的是,我无法找到实现这一目标的方法 – 互联网缺乏与关键词相关的资源,例如“在可可应用中查看切换,在mac应用程序中切换视图,mac app dev教程”……

你们中的任何人都知道一个教程,而这里是踢球者,实际上涵盖了在视图之间切换的问题吗?或者也许知道你可以在Stack Overflow答案中解释的任何快速方法?

概念证明
一个非常简单的概念验证可能如下.在一个简单的应用程序中,有两个视图 – 屏幕1(当前显示)和屏幕2(隐藏屏幕外):

步骤1)启动应用程序,出现屏幕1(包含标签“屏幕1”和按钮“转到下一步”)
步骤2)按下按钮
步骤3)屏幕1在屏幕外滑动为
步骤4)屏幕2幻灯片(包含单个标签“屏幕2”)

谢谢.

解决方法 Core Animation并没有像在iOS上那样深入集成在OS X中.
因此,您需要自己做很多事情.
你可以做的是使用窗口的contentVIEw作为超级视图,然后执行以下 *** 作切换到另一个视图(动画).

- (voID)switchSubVIEws:(NSVIEw *)newSubvIEw{  NSVIEw *mainVIEw = [[self window] contentVIEw];  // use a for loop if you want it to run on older OS's  [mainVIEw removeAllSubVIEws];  // fade out  [[mainVIEw animator] setAplhaValue:0.0f];  // make the sub vIEw the same size as our super vIEw  [newSubVIEw setFrame:[mainVIEw bounds]];  // *push* our new sub vIEw  [mainVIEw addSubVIEw:newSubVIEw];  // fade in  [[mainVIEw animator] setAlphaValue:1.0f];}

但是,这不会给你你想要的效果.如果你想让它给它一个sorta移动效果你必须包括QuartzCore.framework并执行以下 *** 作:

- (voID)prepareVIEws{ // this method will make sure we can animate in the switchSubVIEwsMethod  CATransition *Transition = [CATransition animation];  [Transition setType:kCATransitionPush];  [Transition setSubtype:kCATransitionFromleft];  NSVIEw *mainVIEw = [[self window] contentVIEw];  [mainVIEw setAnimations:[NSDictionary dictionaryWithObject:Transition forKey:@"subvIEws"]];  [mainVIEw setWantsLayer:YES];}

然后在switchSubVIEws中:你只需要使用:

[[mainVIEw animator] addSubVIEw:newSubVIEw];
总结

以上是内存溢出为你收集整理的可可 – 在Mac应用程序中轻松切换“视图控制器”(类似于iOS)全部内容,希望文章能够帮你解决可可 – 在Mac应用程序中轻松切换“视图控制器”(类似于iOS)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1019448.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存