问题标签 [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 投票
1 回答
99 浏览

iphone - 用代码在 nib 中设置的类之间进行通信?

一个初学者的问题:

如果,在您的 nib 中,您将 File's Owner 链接到 ViewController 类,并且您还有一个 NSObject 派生类,您如何在代码中在 ViewController 类和 NSObject 类之间进行通信?

例如,假设 ScientificCalculatorView.xib 看起来像这样

显然,我希望 Calculator 可重用,因此它可以与 NormalCalculatorViewController 或类似的东西一起使用。这样 UI 和计算器代码是分开的。计算器甚至需要在笔尖中吗?

这是一个初学者的问题,但我只是想弄清楚它。

0 投票
1 回答
6772 浏览

iphone - loadNibNamed 是怎么做的?

在大多数示例中,loadNibNamed没有使用 value 的返回值,所以我猜它使用的是 owner 参数。但是它是如何工作并与所有者对象建立连接的呢?为了以这种方式加载笔尖,我的所有者类应该满足什么样的要求?

我能猜到的唯一要求是

  1. 所有者类必须在 nib 文件中的一个或多个对象上定义一个出口
  2. nib 文件的所有者应该设置为正在加载 nib 的类,然后loadNibNamed可以将 owner 参数设置为self
  3. nib 文件应将所有连接设置为所有者类中定义的插座

我的假设是正确的,还是在使用时我还需要考虑其他任何事情loadNibNamed

0 投票
1 回答
1077 浏览

xcode - 按下按钮后加载表格视图笔尖

我使用以下代码向导航栏添加了一个按钮,按下该按钮将调用方法 showCountries:

现在这个工作,按钮出现,按下时按计划进入 showCountries 方法。

show countries 方法需要做的是加载一个新的表格视图,其中包含一个错误国家列表(目前在一个数组中)。

为此,我尝试了以下代码:

一切似乎都可以正常编译,但是在使用时,控制台中会出现以下错误,并且应用程序崩溃:

2010-06-21 18:09:02.076 Vat Pro[788:207] * -[UIViewController tableView:numberOfRowsInSection:]:无法识别的选择器发送到实例 0x12a920 2010-06-21 18:09:02.082 Vat Pro[788:207] *由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“***-[UIViewController tableView:numberOfRowsInSection:]:无法识别的选择器发送到实例 0x12a920”2010-06-21 18:09:02.088 Vat Pro[788:207]

我已经挠头 2 天了,如果你能发现我的错误,请告诉我。

我还尝试加载一个普通的 nib 文件,效果很好。

0 投票
2 回答
293 浏览

objective-c - Making sure that objects in nibs are initialized before applicationDidFinishLaunching

and thanks for taking a look at my problem.

i have two view controllers in my app and each has its own nib file. an instance of controller1 is stored in MainWindow.xib and an instance of controller 2 is in Controller1.xib.

is there a way to make sure that controller 2 is initialized before the app delegate is sent applicationDiDFinishLaunching?

the actual setup is much more complicated with many other view controllers, so i really don't want to put everything into MainWindow.xib. plus doing so will reduce reusability.

thanks again!

0 投票
2 回答
615 浏览

cocoa - dylib中nib的窗口

我对 Mac 很陌生,但对 Windows 相当熟悉。我需要的是一个由库(dylib)打开和关闭的窗口。这在 MS Windows 中很容易做到,但在 Cocoa 下似乎并不难。

我将苹果的“CocoaInCarbon”示例中的代码与 C++ Wrappers 一起使用。但NSApplicationLoad()随后[NSBundle LoadNibNamed:@"MyWindow" owner:self]失败。这是由于 dylib 不是捆绑包引起的吗?

是否有其他方法可以在 dylib 中打开和控制窗口?

0 投票
1 回答
2820 浏览

objective-c - 在 UIViewController 的 viewDidUnload 中释放 IBOutlets?

我对在基于 Nib 的UIViewControllers 中究竟发生了什么感到有点困惑。生成UIViewController子类时,模板在方法中包含非常具体的注释viewDidUnload

这适用于哪些子视图?

  • 我初始化的那些viewDidLoad?(我会说是的)
  • 我初始化的那些initWithNibName?(我会说不)
  • 引用 Nib 中对象的 IBOutlets?

如果我像这样使用视图控制器:

在这种情况下,我认为保存对子视图的引用的实例变量是否被释放并不重要,viewDidUnload或者一旦视图控制器从堆栈中弹出就应该被调用,所以我不妨按照苹果所说的去做并释放dealloc实例dealloc变量 onviewDidUnload而不是dealloc.

但是假设我用作MyViewController可能被多次推送的实例变量:

MyViewController如果我在 中释放 IBOutlet会发生什么viewDidUnload?我可以指望在下一个对它有新的引用viewDidLoad吗?

换句话说:在 之后视图本身会发生什么viewDidUnload?如果再次推动控制器,它是否会从 Nib 释放并重新加载?或者视图是否保留在内存中?如果是这样,网点之前是否会重新设置viewDidLoad

如果视图保留在内存中并且插座在之前重新设置viewDidLoad或每次按下控制器时都重新加载,我认为释放插座是正确的viewDidUnload(即使在第一种情况下它并不重要)。但除此之外(特别是如果视图保留在内存中并且未重新设置插座),viewDidUnload对于我提出的用例来说,释放子视图是错误的,我正确吗?

0 投票
1 回答
104 浏览

objective-c - Cocoa - 失去焦点时加载的笔尖文件消失

我有一个像这样加载的 nib 文件[NSBundle loadNibNamed: @"myNibFile" owner: self ],它弹出很好,但是当它失去焦点时,它就消失了。我检查了它是否在我的主窗口后面消失,但不是。我的应用程序很大,所以我不确定是什么原因造成的。如果这有什么不同,我启用了垃圾收集。有谁知道加载的 nib 文件有任何问题并且我应该研究一下失去焦点?如有必要,我可以开始从我的代码中发布一些示例。

0 投票
3 回答
578 浏览

cocoa - 使用 Core Data 将 nib 拆分为多个 nib 文件

目前,我有一个 managedContext、许多相互关联的实体的 NSArrayController,以及几个 Windows,每个 Windows 都使用 1 或 2 个 NSArrayController。Windows 使用核心数据绑定,所有这些都是通过在 IB 中完成的可可绑定设置的

我现在有 1 个笔尖 (xib),里面有所有东西。通常在使用我的应用程序时,我只会打开其中一个窗口,而我不想加载其他所有内容。因此,按照 Apple 的建议和常识,我想闯入许多 nib(理想情况下,每个 Window 一个)

就如何加载单独的 nib 文件而言,我很好,但我怎样才能将这一切拆分并仍然保持它们相互链接?似乎当我创建一个新的笔尖时,我无法在它和另一个之间建立联系。这有很多原因是有道理的,但是我该怎么做呢?我是否只是切换到以编程方式进行所有绑定,然后在笔尖加载时设置我的绑定?也许将我所有的 NSArrayControllers 放在一个中央 nib 中并一次加载它们,然后在我访问该功能并在那时进行绑定时加载每个 Window 的 nib 是有意义的?

0 投票
2 回答
2861 浏览

iphone - 如何在不使用视图控制器的情况下使用 nib 文件加载视图

我是这个objective-c的新手,我想使用按下按钮时创建的nib文件加载视图。不使用任何视图控制器..

0 投票
3 回答
978 浏览

iphone - 何时使用 IBOutlet?

我对 IBOutlet 有点困惑。当变量将在 nib 中更改时,我应该使用 IBOutlet 是否正确?