macOSのスクリーンショットの保存場所を変更するメニュバーエクストラ
Revision | 72b006520a50aa75212394f4a4ae06eb722451f5 (tree) |
---|---|
Time | 2017-11-04 23:35:51 |
Author | masakih <masakih@user...> |
Commiter | masakih |
Swift4に更新
@@ -180,7 +180,7 @@ | ||
180 | 180 | isa = PBXProject; |
181 | 181 | attributes = { |
182 | 182 | LastSwiftUpdateCheck = 0830; |
183 | - LastUpgradeCheck = 0830; | |
183 | + LastUpgradeCheck = 0910; | |
184 | 184 | ORGANIZATIONNAME = "Hori,Masaki"; |
185 | 185 | TargetAttributes = { |
186 | 186 | F47B06E61E9A5DF9006711D9 = { |
@@ -314,7 +314,9 @@ | ||
314 | 314 | CLANG_CXX_LIBRARY = "libc++"; |
315 | 315 | CLANG_ENABLE_MODULES = YES; |
316 | 316 | CLANG_ENABLE_OBJC_ARC = YES; |
317 | + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; | |
317 | 318 | CLANG_WARN_BOOL_CONVERSION = YES; |
319 | + CLANG_WARN_COMMA = YES; | |
318 | 320 | CLANG_WARN_CONSTANT_CONVERSION = YES; |
319 | 321 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; |
320 | 322 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |
@@ -322,7 +324,11 @@ | ||
322 | 324 | CLANG_WARN_ENUM_CONVERSION = YES; |
323 | 325 | CLANG_WARN_INFINITE_RECURSION = YES; |
324 | 326 | CLANG_WARN_INT_CONVERSION = YES; |
327 | + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; | |
328 | + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; | |
325 | 329 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; |
330 | + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; | |
331 | + CLANG_WARN_STRICT_PROTOTYPES = YES; | |
326 | 332 | CLANG_WARN_SUSPICIOUS_MOVE = YES; |
327 | 333 | CLANG_WARN_UNREACHABLE_CODE = YES; |
328 | 334 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; |
@@ -345,7 +351,7 @@ | ||
345 | 351 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
346 | 352 | GCC_WARN_UNUSED_FUNCTION = YES; |
347 | 353 | GCC_WARN_UNUSED_VARIABLE = YES; |
348 | - MACOSX_DEPLOYMENT_TARGET = 10.10; | |
354 | + MACOSX_DEPLOYMENT_TARGET = 10.12; | |
349 | 355 | MTL_ENABLE_DEBUG_INFO = YES; |
350 | 356 | ONLY_ACTIVE_ARCH = YES; |
351 | 357 | SDKROOT = macosx; |
@@ -365,7 +371,9 @@ | ||
365 | 371 | CLANG_CXX_LIBRARY = "libc++"; |
366 | 372 | CLANG_ENABLE_MODULES = YES; |
367 | 373 | CLANG_ENABLE_OBJC_ARC = YES; |
374 | + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; | |
368 | 375 | CLANG_WARN_BOOL_CONVERSION = YES; |
376 | + CLANG_WARN_COMMA = YES; | |
369 | 377 | CLANG_WARN_CONSTANT_CONVERSION = YES; |
370 | 378 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; |
371 | 379 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; |
@@ -373,7 +381,11 @@ | ||
373 | 381 | CLANG_WARN_ENUM_CONVERSION = YES; |
374 | 382 | CLANG_WARN_INFINITE_RECURSION = YES; |
375 | 383 | CLANG_WARN_INT_CONVERSION = YES; |
384 | + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; | |
385 | + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; | |
376 | 386 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; |
387 | + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; | |
388 | + CLANG_WARN_STRICT_PROTOTYPES = YES; | |
377 | 389 | CLANG_WARN_SUSPICIOUS_MOVE = YES; |
378 | 390 | CLANG_WARN_UNREACHABLE_CODE = YES; |
379 | 391 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; |
@@ -390,7 +402,7 @@ | ||
390 | 402 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
391 | 403 | GCC_WARN_UNUSED_FUNCTION = YES; |
392 | 404 | GCC_WARN_UNUSED_VARIABLE = YES; |
393 | - MACOSX_DEPLOYMENT_TARGET = 10.10; | |
405 | + MACOSX_DEPLOYMENT_TARGET = 10.12; | |
394 | 406 | MTL_ENABLE_DEBUG_INFO = NO; |
395 | 407 | SDKROOT = macosx; |
396 | 408 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; |
@@ -406,7 +418,7 @@ | ||
406 | 418 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; |
407 | 419 | PRODUCT_BUNDLE_IDENTIFIER = com.masakih.GoInto; |
408 | 420 | PRODUCT_NAME = "$(TARGET_NAME)"; |
409 | - SWIFT_VERSION = 3.0; | |
421 | + SWIFT_VERSION = 4.0; | |
410 | 422 | }; |
411 | 423 | name = Debug; |
412 | 424 | }; |
@@ -419,7 +431,7 @@ | ||
419 | 431 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; |
420 | 432 | PRODUCT_BUNDLE_IDENTIFIER = com.masakih.GoInto; |
421 | 433 | PRODUCT_NAME = "$(TARGET_NAME)"; |
422 | - SWIFT_VERSION = 3.0; | |
434 | + SWIFT_VERSION = 4.0; | |
423 | 435 | }; |
424 | 436 | name = Release; |
425 | 437 | }; |
@@ -433,7 +445,7 @@ | ||
433 | 445 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; |
434 | 446 | PRODUCT_BUNDLE_IDENTIFIER = com.masakih.GoIntoTests; |
435 | 447 | PRODUCT_NAME = "$(TARGET_NAME)"; |
436 | - SWIFT_VERSION = 3.0; | |
448 | + SWIFT_VERSION = 4.0; | |
437 | 449 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/GoInto.app/Contents/MacOS/GoInto"; |
438 | 450 | }; |
439 | 451 | name = Debug; |
@@ -448,7 +460,7 @@ | ||
448 | 460 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; |
449 | 461 | PRODUCT_BUNDLE_IDENTIFIER = com.masakih.GoIntoTests; |
450 | 462 | PRODUCT_NAME = "$(TARGET_NAME)"; |
451 | - SWIFT_VERSION = 3.0; | |
463 | + SWIFT_VERSION = 4.0; | |
452 | 464 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/GoInto.app/Contents/MacOS/GoInto"; |
453 | 465 | }; |
454 | 466 | name = Release; |
@@ -1,6 +1,6 @@ | ||
1 | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | 2 | <Scheme |
3 | - LastUpgradeVersion = "0830" | |
3 | + LastUpgradeVersion = "0910" | |
4 | 4 | version = "1.3"> |
5 | 5 | <BuildAction |
6 | 6 | parallelizeBuildables = "YES" |
@@ -20,7 +20,7 @@ extension ActionListener { | ||
20 | 20 | panel.title = NSLocalizedString("Choose Folder", comment: "Choose Folder Open Panel Title") |
21 | 21 | panel.message = NSLocalizedString("Choose Folder for Save Screenshot", comment: "Choose Folder Open Panel Message") |
22 | 22 | |
23 | - guard panel.runModal() == NSFileHandlingPanelOKButton, | |
23 | + guard panel.runModal() == NSApplication.ModalResponse(NSFileHandlingPanelOKButton), | |
24 | 24 | let url = panel.directoryURL else { return } |
25 | 25 | owner.urlSelector(url) |
26 | 26 | } |
@@ -30,7 +30,7 @@ final class FolderItem: StatusItem { | ||
30 | 30 | menuItem.title = FileManager.default.displayName(atPath: url.path) |
31 | 31 | } |
32 | 32 | |
33 | - let work = NSWorkspace.shared() | |
33 | + let work = NSWorkspace.shared | |
34 | 34 | menuItem.image = fitSize(work.icon(forFile: url.path)) |
35 | 35 | menuItem.action = #selector(ActionListener.changeFolder(_:)) |
36 | 36 | menuItem.target = listener |
@@ -53,7 +53,7 @@ final class FolderItem: StatusItem { | ||
53 | 53 | } |
54 | 54 | |
55 | 55 | func update(_ url: URL) { |
56 | - menuItem.state = (self.url == url ? NSOnState : NSOffState) | |
56 | + menuItem.state = (self.url == url ? .on : .off) | |
57 | 57 | } |
58 | 58 | } |
59 | 59 |
@@ -35,7 +35,7 @@ class ImageTypeItem: StatusItem { | ||
35 | 35 | |
36 | 36 | menuItem.title = NSLocalizedString("Image Type", comment: "Image Type MenuItem") |
37 | 37 | |
38 | - let ws = NSWorkspace.shared() | |
38 | + let ws = NSWorkspace.shared | |
39 | 39 | menuItem.submenu = NSMenu() |
40 | 40 | |
41 | 41 | supportTypes |
@@ -56,9 +56,9 @@ class ImageTypeItem: StatusItem { | ||
56 | 56 | menuItem.submenu?.items.forEach { |
57 | 57 | if let type = $0.representedObject as? String, |
58 | 58 | type == current { |
59 | - $0.state = NSOnState | |
59 | + $0.state = .on | |
60 | 60 | } else { |
61 | - $0.state = NSOffState | |
61 | + $0.state = .off | |
62 | 62 | } |
63 | 63 | } |
64 | 64 | } |
@@ -10,7 +10,7 @@ import Cocoa | ||
10 | 10 | |
11 | 11 | extension ActionListener { |
12 | 12 | @IBAction func quit(_ sender: Any?) { |
13 | - NSApplication.shared().terminate(nil) | |
13 | + NSApplication.shared.terminate(nil) | |
14 | 14 | } |
15 | 15 | } |
16 | 16 |
@@ -9,7 +9,7 @@ | ||
9 | 9 | import Cocoa |
10 | 10 | |
11 | 11 | final class StatusBar: NSObject { |
12 | - let myStatusBar = NSStatusBar.system().statusItem(withLength: NSSquareStatusItemLength) | |
12 | + let myStatusBar = NSStatusBar.system.statusItem(withLength: NSStatusItem.squareLength) | |
13 | 13 | let menu = NSMenu() |
14 | 14 | private(set) var items: [StatusItem] = [] |
15 | 15 | private(set) var recentItems = LimitedArray<FolderItem>(5) { |