问题标签 [interface-builder]

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 投票
3 回答
10877 浏览

cocoa-touch - Interface Builder 是否使用 -init 方法来初始化视图控制器?

我使用界面构建器设置了标签栏控制器,每个标签栏项目都链接到一个视图控制器(4 个标签,4 个视图控制器)。我想知道 Interface Builder 是否使用一种-init方法来初始化视图控制器,因为显然这个方法没有被调用:

...我想做一些初始化。我无法添加它,-viewDidLoad因为它会在内存警告的情况下被召回。任何的想法?

0 投票
2 回答
11892 浏览

objective-c - 如何在 InterfaceBuilder 中显示自定义 UIView?

我似乎喜欢设计新的UIViewsUIControls实现自己的-drawRect:方法。这对我来说效果很好,尤其是在使用UIViewsInterface Builder组合时。

但是在 Interface Builder 中组合它们很烦人,因为它们只是显示为无聊的普通矩形。

如果视图真的像内置控件那样呈现自己,那就太好了。

有什么方法可以构建我的项目,以便 Interface Builder 呈现我的自定义视图?

0 投票
5 回答
25087 浏览

iphone - UINavigationBar tintColor 带渐变

我想以编程方式更改tintColorUINavigationBar 的,并保持界面生成器中的渐变。

当我tintColor在我的代码中更改时,渐变会消失,但是当我tintColor在 Interface Builder 中更改时,渐变会被保留。

有任何想法吗?

0 投票
1 回答
1206 浏览

cocoa - 在 Interface Builder 中保留窗口位置

有没有办法在 Interface Builder 中保留窗口位置?每次我重新打开一个 nib 文件时,MainWindow.xib 窗口都会回到屏幕的左上角,位于包含我正在布局的界面的窗口后面。每次将它移回我之前的位置开始让我感到紧张。似乎应该有一个简单的方法来做到这一点,但如果有的话我还没有找到它。

谢谢!

0 投票
1 回答
2455 浏览

cocoa-touch - 是否可以从 NIB 初始化 UINavigationController 子类?

我有一个UITabBarController基于应用程序。选项卡将根据数据库条目创建,所以我事先不知道它们。我想以编程方式为每个选项卡初始化一个UINavigationController子类(我有几种不同的类型)。

理想情况下,我真的很想UINavigationController使用 Interface Builder 绘制整个子类 + 它的子视图,就像您在 IB 中为每个选项卡添加定义视图时可以做的那样(即当您提前知道选项卡将是什么时)。我尝试将“类标识”设置为我的UINavigationController子类名称,然后UINavigationController在其中添加一个,但显然它没有在“文件所有者”级别注入实例......

谢谢

0 投票
2 回答
3310 浏览

cocoa-touch - -[UITableView scrollToRowAtIndexPath:atScrollPosition:animated:] 查询

我有一个带有 UIView 的 NIB 文件,几个 UIImageView(包括一个徽标)和一个 UITableView 嵌入在徽标下方的 UIView 中,我允许用户输入用户名/密码以登录到我的应用程序。我在用户名/密码下方的 UITableViewCell 中还有第三个任意 UITextField。问题是,当它被点击时,键盘覆盖了整行。

我已经-scrollToRowAtIndexPath:atScrollPosition:animated:成功地在我的应用程序的其他部分使用,但不同之处在于我的 UITableView 覆盖了内容视图的整个高度/宽度,所以滚动工作。在这里它根本不滚动,我猜是因为 UITableView 嵌入在 UIView 中。

任何有关如何获得适当行为的建议将不胜感激。

0 投票
3 回答
3694 浏览

cocoa-touch - 你能在 Interface Builder 中设置导航栏的编辑按钮吗?

设置表格视图以允许编辑很容易。只需在您的 UITableViewController 中添加一行:

此行在导航栏上添加了一个编辑按钮,该按钮会将表格更改为编辑模式,并在编辑时将其按钮文本更改为“完成”。

是否可以在 Interface Builder 中进行设置?我看到您可以添加 UIBarButtonItem 并将其“标识符”设置为“编辑”,但我没有看到预期的行为。

顺便说一句,“属性”面板中的“标识符”有什么作用?

0 投票
4 回答
13008 浏览

cocoa - 将 NSTextField 绑定到 NSNumber

我正在尝试使用 NSTextField 进行整数用户输入。文本字段绑定到 NSNumber 属性,在 setter 方法中我清理输入值(确保它是 int)并在必要时设置属性。我发送 willChangeValueForKey: 和 didChangeValueForKey:,但是当该文本字段仍处于活动状态时,UI 不会更新为新值。

因此,例如,我可以在 setter 方法清理到“12”的文本字段中键入“12abc”,但文本字段仍显示“12abc”。

我在界面生成器中选中了“持续更新值”。

(我还注意到 setter 方法接收的是 NSString,而不是 NSNumber。这正常吗?)

将 NSTextField 连接到 NSNumber 的正确方法是什么?属性的 setter 方法是什么样的?如何防止非数值出现在文本字段中?

0 投票
2 回答
268 浏览

cocoa-touch - 我应该如何构建这个应用程序?

我正在编写一个 iPhone 应用程序,该应用程序要求用户在继续进入应用程序之前输入他们的手机号码和 PIN 码并按下接受按钮。

以前我有(每个视图都在不同的 Xib 中)

AppDelegate - 如果 {registered add load RootView (which is main view) into NavigationController} else {load RegistrationView subview}

但是当RegistrationView加载时它会出现在状态栏下,我也不知道如何在注册后使用导航栏加载主应用程序,加载时它工作正常,但从注册页面加载时没有导航栏

然后我尝试了

AppDelegate - if {registered add load RootView (which is reg view) in NavigationController} else {load RootView 然后立即推送 HomeView}

但是随后 UINavigationController 似乎在主页上不起作用

实现这一点的最佳方法是什么?我应该把两个主页放在同一个xib中吗?

0 投票
5 回答
1825 浏览

iphone - 一个笔尖,不同的资产。捆绑?

我有一个 iPhone 应用程序,它具有不同的皮肤风格,具有不同的艺术资产和声音,但代码都是相同的。

我已经设置了多个目标,但我遇到的问题是我必须有一组不同的 UIBuilder nib 文件,每个目标每个视图一个,设置为指向该目标的正确艺术。

这有点令人沮丧,因为如果我对一个 nib 文件进行更改,我必须在所有其他 nib 文件中手动进行相同的更改、相同的连接等。我还为不同的皮肤添加了不同名称的所有资产,这样它们就不会在项目中发生冲突。所以,如果我有目标 A 和 B,我有a_main_menu.png, b_main_menu.png... a_FooViewController.xib, b_FooViewController.xib... 等等。

有没有办法制作一个指向具有相同名称的资产的 nib 文件,但它们位于......嗯,不同的捆绑包中?这就是捆绑包的用途吗?我可以想象在我的代码中修复这样的东西(可能在加载之前在笔尖中搜索并替换 A 为 B 甚至可能已经足够好了),虽然我还没有尝试过,但这很难看。

对于我的第一组应用程序来说,这是一个易于管理的策略(尽管远非最佳),但随着我的东西变得越来越复杂,让我的构建器文件保持同步变得非常困难,而且这不是一种非常干燥的工作方式。除了放弃 uibuilder 并在代码中创建我的视图之外,还有更好的方法吗?

如果这在 xcode/builder 级别上工作会很好,所以 builder 会尊重我当前的目标并在我工作时展示该目标的艺术......但我也许可以没有它,就像我可以选择运行时当前的一组艺术作品,我只能在 builder 中使用一组作品。我也可以使用一组笔尖,通过一个目标并在构建之前手动替换所有艺术作品,但这也不是很好。

最好的情况是,如果我可以混合使用这两种策略——例如,如果我有一个目标,它具有多个视图中的一个视图,而必须以不同的方式布局……但这是可选的。

我在问正确的问题吗?

谢谢!