问题标签 [nib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
6838 浏览

iphone - 为什么不使用 XIB 文件的充分理由?

为什么我不应该使用具有高度自定义 UI 和大量动画以及超低内存占用需求的 XIB / NIB 文件有什么好的理由?

作为初学者,我从 XIB 开始。然后我发现我不能只做他们的所有事情。以我希望的方式定制事物开始变得非常困难。所以最后,我把所有的 XIB 都扔掉了,并以编程方式完成了这一切。

所以当有人问我XIB好不好的时候,我一般会说:是的,如果你想制作蹩脚无聊的界面并且不太关心性能,那就去吧。但是还有什么理由不使用 XIB 呢?

因为这个原因,我是唯一一个喜欢以编程方式做所有事情的 iPhone 开发者吗?

0 投票
3 回答
4004 浏览

iphone - 似乎没有加载 nib 作为子视图的自定义视图

我创建了一个自定义视图,它从笔尖加载其内容,如下所示:

在 nib 文件中我设置PricingDataView为 File's Owner 的类型,并contentView在 IB 中连接了插座。我将接口库中的一个常规放置UIView到向用户显示的全尺寸视图上,然后将其类名更改为PricingDataView. 这一切都建立了,但在运行时,我的自定义视图应该是什么都没有呈现。

我在 中放置了断点PricingDataView.initWithFrame,但它们没有命中,所以我知道我遗漏了一些会导致视图被初始化的东西。我很好奇的是,在从笔尖加载我的其他视图的过程中,所有的初始化都发生在我身上,但不是这个。为什么?

0 投票
1 回答
947 浏览

cocoa - 将 NSWindow 显示为 NSView 的子视图

我有一个 NSWindow 我想显示为另一个窗口的一部分。它必须是一个 NSWindow;我不想将其更改为 NSView 或任何东西......我只是不想,因为它涉及访问外国 nib 文件等。

如果可能的话,我应该如何做到这一点?我正在考虑抓住 NSWindow 的视图并将其作为主窗口中另一个视图的子视图......但我认为这是不可能的。是吗?

0 投票
2 回答
3569 浏览

cocoa - 是否可以以编程方式隐藏停靠图标

是否可以根据需要以编程方式隐藏停靠图标。我知道在 plist 中定义属性“应用程序是代理(UIElement)”的一种方法,我们将可可应用程序作为用户代理。但这会导致永久隐藏停靠图标。

我正在寻找一种可以控制停靠图标可见性的方法。任何想法 ?

0 投票
2 回答
1030 浏览

iphone - 加快从 iPhone 上的 NIB 加载 UI

首先,我意识到这个应用程序有一些设计问题,虽然重写其中很大一部分可能会解决我的问题,但我现在正在寻找一种让事情变得更快的方法。

基本上我有

其中 MyViewController.xib 是一个相当复杂的 nib 文件,其中包含许多交织在一起的控制器和视图,其中一些当然会从其他 nib 加载它们的视图和层次结构,但肯定不是全部。加载大约需要 7 秒,考虑到这是一个 iPhone 应用程序,这个时间真的很长。

强制视图加载的原因是我还在并行线程中执行一些网络请求,一旦这些请求完成,我想用这些视图设置很多东西。

我的问题是:我如何找出我的笔尖的哪些部分花了这么长时间,以及在不完全重写整个应用程序的情况下优化它的最佳策略是什么(目前)?

0 投票
2 回答
3106 浏览

objective-c - NSBundle 加载一个 NSViewController

我正在研究一个可以上传包含 NSViewController 的自定义 NSBundle 的项目。在我的主程序中,我有这个代码来处理加载后的包......

捆绑包中的主体类 init 方法如下所示...

View.nib 是位于 bundles 项目中的一个 nib。但是每当我加载捆绑包时,我都会收到此错误...

2010-05-27 09:11:18.423 PluginLoader [45032:a0f] 找不到名为:在捆绑路径中查看:(空)2010-05-27 09:11:18.424 PluginLoader [45032:a0f]-[NSViewController loadView ] 无法加载“视图”笔尖。

我知道我已经把所有东西都连接好了,因为该行[label setStringValue:[instance name]];正确设置了标签文本。另外,如果我将包中的所有类都加载到我的主应用程序项目中,一切都会按预期工作。关于如何在我的包中正确引用“视图”的任何想法?

谢谢!

0 投票
1 回答
134 浏览

cocoa - nib 文件所需的外部图像

我有这个 nib 文件,其中包含大量 NSImageViews,它们在我的应用程序包中使用大量图像。

我希望在应用程序运行时更改显示的图像。

我想要做的是将这些图像外部化到应用程序支持文件夹中,这样当我想修改它们时,我不必修改应用程序包。不幸的是,我不想在代码中将每个 NSImageView 重新分配给应用程序支持文件夹,因为如果我这样做的话,会有大量的 NSImageView 和大量代码要编写。有没有办法告诉 nib 文件有一个资源文件夹不在应用程序包中,它可以从中加载图像?

0 投票
1 回答
434 浏览

iphone - iPhone 国际化。对我来说最简单的工作流程是什么?

我正在变得聪明起来,让我的国际化行动齐头并进。马上,我对 Apple 提供的所有文档感到有点不知所措,所以我想知道有人可以为我的情况绘制一个工作流程。

在开始之前,我浏览了一些 Apple 示例代码,并在 Resources 文件夹中注意到了这个 NIB 文件 - MainWindow.xib:

替代文字 http://daturner.com/stackoverflow/nib.jpg

这显然与国际化/本地化有关。有人可以解释一下这是如何创建的以及它在工作流程中发生的位置吗?

我的应用程序基本上是一个带有一些标签的成像应用程序,我目前使用 NSLocalizedString(...) 以编程方式将其国际化。如果我以编程方式设置所有标签并用 NSLocalizedString(...) 包装所有字符串,我可以完全忽略 NIB 问题吗?

在此先感谢
道格

0 投票
1 回答
1504 浏览

cocoa - 如何显示从单独的 NIB 文件加载的子视图

我正在开发一个使用 iTunes 风格的源列表的 Cocoa 桌面应用程序:源列表中的不同元素导致主要内容区域显示不同的视图。

内容区域完全由 (vertical) 填充NSSplitView;左侧是NSOutlineView源列表。当用户选择左侧的项目时,相关视图会出现在拆分器的右侧。

NSTabView我可以通过将所有内容放在一个 NIB 文件中并在拆分器的右侧放置一个无边框来使其工作得足够好;要切换视图,我只需要更改选定的选项卡。但是将所有视图放在一个 NIB 中是不好的做法,所以我试图将每个子视图移动到它们自己的 NIB 文件中。

我对这个过程的大部分都有一个很好的想法——我NSViewController为每个视图创建了一个子类(EntityDetailViewControllerGroupDetailViewController等),将每个新 NIB 的文件所有者设置为相关的控制器类,view在每个视图中设置连接NIB,并重新设计了绑定。我不知道如何实际更改屏幕上显示的子视图。

我尝试使用NSView右侧的默认泛型并向其发送addSubview:消息;我尝试将其作为第一个子视图连接并调用

但一切都只是让空间空白。如何显示从单独的 NIB 加载的子视图?

0 投票
2 回答
331 浏览

iphone - 对 nib 文件感到困惑

我知道 nib 文件是序列化的对象,并且它们具有所有者、用于建立连接的网点。我使用 XCode 导航窗口模板创建了应用程序,该应用程序按其顺序创建了 2 个 nib 文件 - MainWindow 和 SecondView。我无法理解 MainWindow 是如何引用 SecondView 的,据我所知,这两者之间没有联系。SecondView 的所有者是 UIViewController,在 MainWindow 中有一个导航选项卡,它也是 UIViewController。但他们是如何在 IB 中连接的,我无法理解......

另外我不明白谁在实例化 MainWindow 的所有者对象以及该对象被保存在哪里,变量是 UIApplication myApp = [[UIApplication alloc] init].

这个是自我回答的:UIApplicationMain并且要拥有实例变量,我需要在某处创建出口。

如果我用 UIViewController 所有者创建 10 个 nib 文件,谁会触发它们的反序列化?

如果某个类是 nib 文件的所有者,那么该类的基本职责是什么?是否将 nib 文件反序列化到内存中?

对于杂乱无章的问题,我一直在阅读大量关于 nib 文件的文章和文档,但仍然令人困惑。