Skip to content

Commit

Permalink
Update macOS example
Browse files Browse the repository at this point in the history
  • Loading branch information
ra1028 committed Apr 30, 2019
1 parent 73e3522 commit 255b0f4
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 49 deletions.
12 changes: 8 additions & 4 deletions Examples/Example-macOS/Example-macOS.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
objects = {

/* Begin PBXBuildFile section */
6BE7D4F5215225A600D2F8E9 /* String+Differentiable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BE7D4F4215225A600D2F8E9 /* String+Differentiable.swift */; };
6BAE817D227853360060866E /* ShuffleEmoticonCollectionViewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BAE817C227853360060866E /* ShuffleEmoticonCollectionViewItem.swift */; };
6BE7D4F5215225A600D2F8E9 /* StringExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BE7D4F4215225A600D2F8E9 /* StringExtensions.swift */; };
750C1E6E21515AF800034704 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 750C1E6D21515AF800034704 /* AppDelegate.swift */; };
750C1E7021515AFB00034704 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 750C1E6F21515AFB00034704 /* Assets.xcassets */; };
750C1E7321515AFB00034704 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 750C1E7121515AFB00034704 /* MainMenu.xib */; };
Expand Down Expand Up @@ -55,7 +56,8 @@
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
6BE7D4F4215225A600D2F8E9 /* String+Differentiable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+Differentiable.swift"; sourceTree = "<group>"; };
6BAE817C227853360060866E /* ShuffleEmoticonCollectionViewItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShuffleEmoticonCollectionViewItem.swift; sourceTree = "<group>"; };
6BE7D4F4215225A600D2F8E9 /* StringExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringExtensions.swift; sourceTree = "<group>"; };
750C1E6A21515AF800034704 /* Example-macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Example-macOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
750C1E6D21515AF800034704 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
750C1E6F21515AFB00034704 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
Expand Down Expand Up @@ -99,7 +101,8 @@
children = (
750C1E6D21515AF800034704 /* AppDelegate.swift */,
750C1E7B21515BCC00034704 /* ShuffleEmoticonViewController.swift */,
6BE7D4F4215225A600D2F8E9 /* String+Differentiable.swift */,
6BAE817C227853360060866E /* ShuffleEmoticonCollectionViewItem.swift */,
6BE7D4F4215225A600D2F8E9 /* StringExtensions.swift */,
750C1E6F21515AFB00034704 /* Assets.xcassets */,
750C1E7121515AFB00034704 /* MainMenu.xib */,
750C1E7421515AFB00034704 /* Info.plist */,
Expand Down Expand Up @@ -211,9 +214,10 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
6BE7D4F5215225A600D2F8E9 /* String+Differentiable.swift in Sources */,
6BE7D4F5215225A600D2F8E9 /* StringExtensions.swift in Sources */,
750C1E7C21515BCC00034704 /* ShuffleEmoticonViewController.swift in Sources */,
750C1E6E21515AF800034704 /* AppDelegate.swift in Sources */,
6BAE817D227853360060866E /* ShuffleEmoticonCollectionViewItem.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down
17 changes: 9 additions & 8 deletions Examples/Example-macOS/Sources/Base.lproj/MainMenu.xib
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14313.18" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14313.18"/>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
Expand Down Expand Up @@ -634,7 +635,7 @@
<menuItem title="Show Sidebar" keyEquivalent="s" id="kIP-vf-haE">
<modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
<connections>
<action selector="toggleSourceList:" target="-1" id="iwa-gc-5KM"/>
<action selector="toggleSidebar:" target="-1" id="iwa-gc-5KM"/>
</connections>
</menuItem>
<menuItem title="Enter Full Screen" keyEquivalent="f" id="4J7-dP-txa">
Expand Down Expand Up @@ -716,7 +717,7 @@
<subviews>
<scrollView wantsLayer="YES" borderType="none" autohidesScrollers="YES" horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="LAr-ro-6kM">
<rect key="frame" x="0.0" y="0.0" width="346" height="387"/>
<clipView key="contentView" drawsBackground="NO" id="2Pj-dT-iJ0">
<clipView key="contentView" id="2Pj-dT-iJ0">
<rect key="frame" x="0.0" y="0.0" width="346" height="387"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
Expand All @@ -735,11 +736,11 @@
</collectionView>
</subviews>
</clipView>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="Es9-pa-vVM">
<scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="Es9-pa-vVM">
<rect key="frame" x="0.0" y="371" width="346" height="16"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="wbg-vO-Hg8">
<scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="wbg-vO-Hg8">
<rect key="frame" x="234" y="1" width="15" height="143"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
Expand Down Expand Up @@ -814,11 +815,11 @@
</tableView>
</subviews>
</clipView>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="iZO-4w-Q1u">
<scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="iZO-4w-Q1u">
<rect key="frame" x="0.0" y="371" width="344" height="16"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="uRZ-s5-org">
<scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="NO" id="uRZ-s5-org">
<rect key="frame" x="224" y="17" width="15" height="102"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import Cocoa

final class ShuffleEmoticonCollectionViewItem: NSCollectionViewItem {
static var itemIdentifier: NSUserInterfaceItemIdentifier {
return NSUserInterfaceItemIdentifier(String(describing: self))
}

var emoticon: String {
get { return _textField.stringValue }
set { _textField.stringValue = newValue }
}

private let _textField = NSTextField()

override func loadView() {
view = NSView(frame: NSRect(x: 0, y: 0, width: 60, height: 54))
}

override func viewDidLoad() {
super.viewDidLoad()
_textField.font = .systemFont(ofSize: 40)
_textField.alignment = .center
_textField.isEditable = false

_textField.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(_textField)

let constraints = [
_textField.topAnchor.constraint(equalTo: view.topAnchor),
_textField.bottomAnchor.constraint(equalTo: view.bottomAnchor),
_textField.leadingAnchor.constraint(equalTo: view.leadingAnchor),
_textField.trailingAnchor.constraint(equalTo: view.trailingAnchor)
]
NSLayoutConstraint.activate(constraints)
}
}
40 changes: 3 additions & 37 deletions Examples/Example-macOS/Sources/ShuffleEmoticonViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ final class ShuffleEmoticonViewController: NSViewController {
override func awakeFromNib() {
super.awakeFromNib()

collectionView.register(EmoticonCollectionViewItem.self, forItemWithIdentifier: EmoticonCollectionViewItem.itemIdentifier)
tableView.selectionHighlightStyle = .none
collectionView.register(ShuffleEmoticonCollectionViewItem.self, forItemWithIdentifier: ShuffleEmoticonCollectionViewItem.itemIdentifier)
}
}

Expand All @@ -40,7 +41,7 @@ extension ShuffleEmoticonViewController: NSCollectionViewDataSource {
}

func collectionView(_ collectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem {
let item = collectionView.makeItem(withIdentifier: EmoticonCollectionViewItem.itemIdentifier, for: indexPath) as! EmoticonCollectionViewItem
let item = collectionView.makeItem(withIdentifier: ShuffleEmoticonCollectionViewItem.itemIdentifier, for: indexPath) as! ShuffleEmoticonCollectionViewItem
item.emoticon = data[indexPath.item]
return item
}
Expand All @@ -63,38 +64,3 @@ private extension NSTableCellView {
return NSUserInterfaceItemIdentifier(String(describing: self))
}
}

private final class EmoticonCollectionViewItem: NSCollectionViewItem {
static var itemIdentifier: NSUserInterfaceItemIdentifier {
return NSUserInterfaceItemIdentifier(String(describing: self))
}

var emoticon: String {
get { return _textField.stringValue }
set { _textField.stringValue = newValue }
}

private let _textField = NSTextField()

override func loadView() {
view = NSView(frame: NSRect(x: 0, y: 0, width: 60, height: 54))
}

override func viewDidLoad() {
super.viewDidLoad()
_textField.font = .systemFont(ofSize: 40)
_textField.alignment = .center
_textField.isEditable = false

_textField.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(_textField)

let constraints = [
_textField.topAnchor.constraint(equalTo: view.topAnchor),
_textField.bottomAnchor.constraint(equalTo: view.bottomAnchor),
_textField.leadingAnchor.constraint(equalTo: view.leadingAnchor),
_textField.trailingAnchor.constraint(equalTo: view.trailingAnchor)
]
NSLayoutConstraint.activate(constraints)
}
}

0 comments on commit 255b0f4

Please sign in to comment.