objective-c - 在没有 View Controller 的情况下使用 xib
<p><p>我需要创建几个类似的 View <br/>
以一种简单的方式,我在 xib 中创建了一些 View (每个全屏)</p>
<p>我有一个 ViewController 来使用这个 xib 的 View ,代码如下:</p>
<pre><code>NSArray* views = [ loadNibNamed:@"MyXibName" owner:nil options:nil];
];
</code></pre>
<p>此时, View 显示正常。</p>
<p>现在,这些 View 中有一些按钮,所以我为每个 View 连接了一个 socket </p>
<p><strong>坏事发生了</strong> </p>
<p>应用程序因 </p> 而崩溃
<blockquote>
<p><strong>uncaught exception 'NSUnknownKeyException', reason: '[<NSObject 0x969db50> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key</strong></p>
</blockquote>
<p>分析:<br/>
虽然我的 xib 文件的“文件所有者”已经设置,但是 xib 和唯一的 ViewController 之间没有任何联系。 </p>
<p>如何获得 View 按钮的指针? </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>你可以这样做:</p>
<pre><code>NSNib* aNib = [ initWithNibNamed:@"MyGreatNib" bundle:nil];
NSArray* topLevelObjs = nil;
for (SomeClass *obj in myOwnerObjects) {
topLevelObjs = nil;
if (!)
{
NSLog(@"Warning! Could not load nib file.\n");
return;
}
for (id topLevelObj in topLevelObjs) {
if (]) {
NSView *otView = (NSView *)topLevelObj;
// set frame...
;
}
}
}
</code></pre></p>
<p style="font-size: 20px;">关于objective-c - 在没有 ViewController 的情况下使用 xib,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/12157689/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/12157689/
</a>
</p>
页:
[1]