2011-08-13 34 views
9

Tôi muốn viết một tiện ích nhỏ di chuyển cửa sổ từ không gian này sang không gian khác trong OS X Lion. Tôi không quan tâm nếu tiện ích được viết bằng AppleScript hoặc Objective-C. Những gì tôi không thể hình dung ra được đưa ra một cửa sổ, làm thế nào tôi có thể di chuyển nó đến một không gian khác nhau. Tôi đã thấy rất nhiều thông tin hữu ích trong chuỗi this, nhưng không có gì về cách thực sự di chuyển cửa sổ. Nếu bất cứ ai có bất kỳ suy nghĩ hay ý tưởng nào, tôi sẽ đánh giá cao việc lắng nghe họ. Cảm ơn.Di chuyển cửa sổ sang không gian mới trong điều khiển nhiệm vụ

+0

Điều này có vẻ hơi quá năng lượng cho StackOverflow. Đây có phải là để sử dụng cá nhân hoặc để phát triển thực tế? –

+0

Kế hoạch là tạo một ứng dụng giúp tôi thao tác không gian dễ dàng hơn trong Lion. Có một vài điều tôi muốn thêm vào không gian, chẳng hạn như dễ dàng hoán đổi vị trí của hai không gian hoặc ứng dụng toàn màn hình. Tôi thậm chí còn phát triển một front-end với ý tưởng rằng Apple sẽ cung cấp các API để thực hiện điều này. Tôi sẽ phát hành ứng dụng này trên App Store. Thật không may, điều này dường như không thể sử dụng API được cung cấp. Tôi đã từ bỏ sau khi đọc bài đăng trên blog này: http://thecocoabots.com/blog/post/377/. – LandonSchropp

+0

Tôi cũng đang tìm câu trả lời cho điều này. Bạn đã quản lý để làm điều đó? Bạn có thể cập nhật không? – SimonW

Trả lời

-1

Bạn sẽ cần phải sử dụng thư viện tùy chỉnh có thể tìm thấy ở đây http://macscripter.net/viewtopic.php?id=23453, tuy nhiên tôi không chắc loại hỗ trợ nào có trong sư tử.

+0

Thật không may điều này không giống như nó sẽ làm việc cho Lion. Vì bạn không thể gửi ứng dụng tới App Store trừ khi nó hoạt động cho OS X mới nhất, tôi e rằng điều này sẽ không hoạt động. Tuy nhiên, cảm ơn. – LandonSchropp

3

Nếu bạn đang sử dụng các cuộc gọi khách quan, thì việc di chuyển giữa các khoảng trống trong 10.7 thực sự giống như 10,6 ngoại trừ một vấn đề. Space ID là chỉ mục dựa trên 10.6, nhưng dựa trên cái gì khác (không hoàn toàn là GUID) trong 10.7.

Nếu bạn có cửa sổ đã có đúng không gian, các giải pháp in this question sẽ hoạt động (Tôi đang sử dụng nó trong). Bạn có thể lấy ID không gian với CGSGetWindowWorkspace, và sau đó đặt nó trên một cửa sổ khác bằng cách sử dụng CGSMoveWorkspaceWindowList.

Bây giờ, nếu bạn không có id không gian - ví dụ: bạn chỉ muốn di chuyển cửa sổ đến không gian thứ 2 - sau đó tôi sẽ bị bối rối như bạn. Tôi đang tìm liên kết giữa id không gian và số chỉ mục. (Sẽ cập nhật câu trả lời này nếu tôi tìm thấy nó)

Cuối cùng, bạn đề cập đến App Store trong phần bình luận ở trên - điều này sẽ không phù hợp vì CGS * sử dụng các khung công tác không có giấy tờ sẽ khiến bạn bị từ chối.

+0

Rất tệ khi Apple không cung cấp API công khai để thực hiện việc này. Thật không may, tôi có một yêu cầu rằng ứng dụng này phải có thể được phát hành trong App Store. Tuy nhiên, cảm ơn cho đề nghị. – LandonSchropp

+0

Nếu bạn cần khung chính thức, bạn bị mắc kẹt với [setCollectionBehavior] (http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/Reference/Reference.html#//apple_ref/occ/instm/NSWindow/setCollectionBehavior :) gọi. –

+0

Lưu ý cho Lion: ID không gian bạn nhận được thông qua thay đổi 'kCGWindowWorkspace' giữa các lần đăng nhập. – Mark

Các vấn đề liên quan