XIB là một vùng chứa cho các đối tượng, nó không bằng một cửa sổ. Bạn không thể tập trung vào XIB, bạn chỉ có thể căn giữa một cửa sổ chứa trong XIB.
Ngoài ra, các đối tượng trong XIB được tạo khi bạn tải. Bạn không vượt qua một đối tượng như là chủ sở hữu mà sau đó đứng trong một trong các đối tượng trong XIB, bạn thay vì sử dụng IBOutlets để có được tham chiếu đến các đối tượng mới được tạo ra khi tải XIB và sau đó bạn có thể tương tác với chúng.
Đối tượng Chủ sở hữu tệp là đối tượng đặc biệt trong XIB, vì đó là đối tượng duy nhất không được tạo và bạn có thể chỉ định đối tượng đó bằng cách chuyển nó tới loadNibNamed:owner:
. Đó là cửa ngõ của bạn giữa các đối tượng được tạo bởi XIB và ứng dụng của bạn.
Thông thường, đối tượng chủ sở hữu là một loại loại bộ điều khiển. Đặt lớp của chủ sở hữu tập tin trong bộ dựng giao diện cho lớp điều khiển của bạn, sau đó xác định một số IBOutlets trong lớp, chúng sẽ hiển thị trong bộ dựng giao diện trên chủ sở hữu tệp và bạn có thể kết nối các đối tượng của bạn trong XIB với chúng.
Cuối cùng, khi bạn chuyển đối tượng điều khiển của mình tới loadNibNamed:owner:
, Cocoa sẽ kết nối IBOutlets của bạn với các đối tượng mới được tạo và bạn có thể sử dụng chúng để tương tác với chúng, ví dụ: để căn giữa cửa sổ trong XIB của bạn.
Tôi đã làm mọi thứ bạn đã nói, ngoại trừ "kết nối cửa sổ của Chủ sở hữu tệp". Một khi tôi đã làm tất cả mọi thứ đã làm việc. Cảm ơn nhiều! +1 và đánh dấu. –
Đảm bảo bỏ chọn thuộc tính 'Restorable' của cửa sổ trong IB. –
@KeithSmiley Trình chỉnh sửa nào là thuộc tính 'Restorable', hay nó không còn áp dụng cho Xcode 5.x? –